Index: ssp_qb_r5f100le_cs/trunk/sample/Makefile
===================================================================
--- ssp_qb_r5f100le_cs/trunk/sample/Makefile	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/sample/Makefile	(revision 95)
@@ -10,51 +10,47 @@
 #  Copyright (C) 2010 by Meika Sugimoto
 # 
-#  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
-#  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
-#  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
-#  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
-#       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
-#      XR[hÉÜÜêÄ¢é±ÆD
-#  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
-#      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
-#      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
-#      Ì³ÛØKèðfÚ·é±ÆD
-#  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
-#      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
-#      ÆD
-#    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
-#        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
-#    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
-#        ñ·é±ÆD
-#  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
-#      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
-#      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
-#      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
-#      ÆÓ·é±ÆD
+#  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+#  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#      スコード中に含まれていること．
+#  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#      の無保証規定を掲載すること．
+#  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#      と．
+#    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#        作権表示，この利用条件および下記の無保証規定を掲載すること．
+#    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#        報告すること．
+#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#      免責すること．
 # 
-#  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
-#  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
-#  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
-#  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
-#  ÌÓCðíÈ¢D
+#  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#  の責任を負わない．
 # 
 # 
 
 #
-#  ^[QbgÌwèiMakefile.targetÅã«³êéÌðh®½ßj
+#  ターゲットの指定（Makefile.targetで上書きされるのを防ぐため）
 #
 all:
 
 #
-#  ^[QbgªÌÌè`
+#  ターゲット略称の定義
 #
 TARGET = @(TARGET)
 
 #
-#  vO~O¾êÌè`
+#  プログラミング言語の定義
 #
 SRCLANG = @(SRCLANG)
@@ -66,36 +62,36 @@
 
 #
-#  \[Xt@CÌfBNgÌè`
+#  ソースファイルのディレクトリの定義
 #
 SRCDIR = @(SRCDIR)
 
 #
-#  IuWFNgt@C¼Ìg£qÌÝè
+#  オブジェクトファイル名の拡張子の設定
 #
 OBJEXT = @(OBJEXT)
 
 #
-#  ÀsÂ«Ìè`i^[QbgË¶Éã«³êéêª éj
+#  実行環境の定義（ターゲット依存に上書きされる場合がある）
 #
 DBGENV := @(DBGENV)
 
 #
-#  J[lCuilibkernel.ajÌfBNg¼
-#  iJ[lCuàmakeÎÛÉ·éÍCóÉè`·éj
+#  カーネルライブラリ（libkernel.a）のディレクトリ名
+#  （カーネルライブラリもmake対象にする時は，空に定義する）
 #
 KERNEL_LIB = @(KERNEL_LIB)
 
 #
-#  J[lðÖPÊÅRpC·é©Ç¤©Ìè`
+#  カーネルを関数単位でコンパイルするかどうかの定義
 #
 KERNEL_FUNCOBJS = @(KERNEL_FUNCOBJS)
 
 #
-#  g[XOðæ¾·é©Ç¤©Ìè`
+#  トレースログを取得するかどうかの定義
 #
 ENABLE_TRACE = @(ENABLE_TRACE)
 
 #
-#  [eBeBvOÌ¼Ì
+#  ユーティリティプログラムの名称
 #
 PERL = @(PERL)
@@ -103,5 +99,5 @@
 
 #
-#  IuWFNgt@C¼Ìè`
+#  オブジェクトファイル名の定義
 #
 OBJNAME = ssp
@@ -115,21 +111,20 @@
 
 #
-#  ^[QbgË¶ÌfBNgÌè`
+#  ターゲット依存部のディレクトリの定義
 #
 TARGETDIR = $(SRCDIR)/target/$(TARGET)
 
 #
-#  ^[QbgË¶Ìè`ÌCN[h
+#  ターゲット依存の定義のインクルード
 #
 include $(TARGETDIR)/Makefile.target
 
 #
-#  J[l\¬è`ÌCN[h
+#  カーネル構成定義のインクルード
 #
 -include Makefile.config
 
 #
-#  RtBM
-[^ÖWÌÏÌè`
+#  コンフィギュレータ関係の変数の定義
 #
 CFG_TABS := --api-table $(SRCDIR)/kernel/ssp_kernel_api.csv \
@@ -140,5 +135,5 @@
 
 #
-#  ¤ÊRpCIvVÌè`
+#  共通コンパイルオプションの定義
 #
 COPTS := $(COPTS) -g
@@ -156,5 +151,5 @@
 
 #
-#  AvP[VvOÉÖ·éè`
+#  アプリケーションプログラムに関する定義
 #
 APPLNAME = @(APPLNAME)
@@ -177,5 +172,5 @@
 
 #
-#  VXeT[rXÉÖ·éè`
+#  システムサービスに関する定義
 #
 SYSSVC_DIR := $(SYSSVC_DIR) $(SRCDIR)/syssvc $(SRCDIR)/library
@@ -187,5 +182,5 @@
 
 #
-#  g£pbP[WÉÖ·éè`
+#  拡張パッケージに関する定義
 #
 
@@ -194,18 +189,17 @@
 
 #
-#  J[lÉÖ·éè`
-#
-#  KERNEL_ASMOBJS: J[lCuÉÜßéC\[XªAZu¾êÌ
-#				   IuWFNgt@CD
-#  KERNEL_COBJS: J[lÌCuÉÜßéC\[XªC¾êÅC\[X
-#				 t@CÆ1Î1ÉÎ·éIuWFNgt@CD
-#  KERNEL_LCSRCS: J[lÌCuÉÜßéC¾êÌ\[Xt@CÅC
-#				  1ÂÌ\[Xt@C©ç¡ÌIuWFNgt@Cð¶
-#				  ¬·éàÌD
-#  KERNEL_LCOBJS: ãÌ\[Xt@C©ç¶¬³êéIuWFNgt@CD
-#  KERNEL_AUX_COBJS: [hW
-[ÉÜßÈ¢ªCJ[lÌ\[Xt@
-#					 CÆ¯¶IvVðKpµÄRpC·×«C\[
-#					 XªC¾êÌIuWFNgt@CD
+#  カーネルに関する定義
+#
+#  KERNEL_ASMOBJS: カーネルライブラリに含める，ソースがアセンブリ言語の
+#				   オブジェクトファイル．
+#  KERNEL_COBJS: カーネルのライブラリに含める，ソースがC言語で，ソース
+#				 ファイルと1対1に対応するオブジェクトファイル．
+#  KERNEL_LCSRCS: カーネルのライブラリに含めるC言語のソースファイルで，
+#				  1つのソースファイルから複数のオブジェクトファイルを生
+#				  成するもの．
+#  KERNEL_LCOBJS: 上のソースファイルから生成されるオブジェクトファイル．
+#  KERNEL_AUX_COBJS: ロードモジュールに含めないが，カーネルのソースファ
+#					 イルと同じオプションを適用してコンパイルすべき，ソー
+#					 スがC言語のオブジェクトファイル．
 #
 KERNEL_DIR := $(KERNEL_DIR) $(SRCDIR)/kernel
@@ -215,5 +209,5 @@
 
 #
-#  ^[Qbgt@Ci¡ð¯ÉIðµÄÍÈçÈ¢j
+#  ターゲットファイル（複数を同時に選択してはならない）
 #
 all: $(OBJFILE)
@@ -221,8 +215,8 @@
 #all: $(OBJNAME).srec
 
-##### ÈºÍÒWµÈ¢±Æ #####
-
-#
-#  Â«ÉË¶·éRpCIvVÌè`
+##### 以下は編集しないこと #####
+
+#
+#  環境に依存するコンパイルオプションの定義
 #
 ifdef DBGENV
@@ -230,5 +224,5 @@
 endif
 #
-#  J[lCuÉÖA·éè`
+#  カーネルライブラリに関連する定義
 #
 ifdef KERNEL_LIB
@@ -239,5 +233,5 @@
 
 #
-#  J[lÌt@C\¬Ìè`
+#  カーネルのファイル構成の定義
 #
 include $(SRCDIR)/kernel/Makefile.kernel
@@ -253,5 +247,5 @@
 
 #
-#  \[Xt@CÌ éfBNgÉÖ·éè`
+#  ソースファイルのあるディレクトリに関する定義
 #
 vpath %.c $(KERNEL_DIR) $(SYSSVC_DIR) $(APPL_DIR) $(EXTPKG_DIR)
@@ -259,5 +253,5 @@
 
 #
-#  RpCÌ½ßÌÏÌè`
+#  コンパイルのための変数の定義
 #
 KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS) $(KERNEL_LCOBJS)
@@ -280,6 +274,5 @@
 
 #
-#  J[lÌRtBM
-[Vt@CÌ¶¬
+#  カーネルのコンフィギュレーションファイルの生成
 #
 cfg1_out.c:
@@ -297,5 +290,5 @@
 
 #
-#  J[lCut@CÌ¶¬
+#  カーネルライブラリファイルの生成
 #
 libkernel.a: $(KERNEL_LIB_OBJS)
@@ -305,5 +298,5 @@
 
 #
-#  ÁÊÈË¶ÖWÌè`
+#  特別な依存関係の定義
 #
 banner.o: kernel_cfg.timestamp $(filter-out banner.o,$(ALL_OBJS)) \
@@ -311,5 +304,5 @@
 
 #
-#  SÌÌN
+#  全体のリンク
 #
 $(OBJFILE): kernel_cfg.timestamp $(ALL_OBJS) $(filter %.a,$(ALL_LIBS))
@@ -323,5 +316,5 @@
 
 #
-#  oCit@CÌ¶¬
+#  バイナリファイルの生成
 #
 $(OBJNAME).bin: $(OBJFILE)
@@ -329,5 +322,5 @@
 
 #
-#  SR[ht@CÌ¶¬
+#  Sレコードファイルの生成
 #
 $(OBJNAME).srec: $(OBJFILE)
@@ -335,5 +328,5 @@
 
 #
-#  RpCÊÌÁ
+#  コンパイル結果の消去
 #
 .PHONY: clean
@@ -370,8 +363,8 @@
 
 #
-#  kernel_cfg.cÆcfg1_out.cÌRpC[ÆË¶ÖWì¬[Ìè`
-#
-#  kernel_cfg.cÆcfg1_out.cÍCAvP[VvOpCVXeT[
-#  rXpCJ[lpÌ·×ÄÌIvVðt¯ÄRpC·éD
+#  kernel_cfg.cとcfg1_out.cのコンパイルルールと依存関係作成ルールの定義
+#
+#  kernel_cfg.cとcfg1_out.cは，アプリケーションプログラム用，システムサー
+#  ビス用，カーネル用のすべてのオプションを付けてコンパイルする．
 #
 KERNEL_CFG_CFLAGS = $(APPL_CFLAGS) $(SYSSVC_CFLAGS) $(KERNEL_CFLAGS)
@@ -388,5 +381,5 @@
 
 #
-#  ÁêÈË¶ÖWì¬[Ìè`
+#  特殊な依存関係作成ルールの定義
 #
 cfg1_out.depend:
@@ -398,5 +391,5 @@
 
 #
-#  Ë¶ÖWt@CÌ¶¬
+#  依存関係ファイルの生成
 #
 .PHONY: gendepend
@@ -417,14 +410,14 @@
 
 #
-#  Ë¶ÖWt@CðCN[h
+#  依存関係ファイルをインクルード
 #
 -include Makefile.depend
 
 #
-#  J­c[ÌR}h¼Ìè`
+#  開発ツールのコマンド名の定義
 #
 ifeq ($(TOOL),gcc)
   #
-  #  GNUJ­Â«p
+  #  GNU開発環境用
   #
   ifdef GCC_TARGET
@@ -451,5 +444,5 @@
 
 #
-#  RpC[Ìè`
+#  コンパイルルールの定義
 #
 KERNEL_ALL_COBJS = $(KERNEL_COBJS) $(KERNEL_AUX_COBJS)
@@ -495,5 +488,5 @@
 
 #
-#  Ë¶ÖWì¬[Ìè`
+#  依存関係作成ルールの定義
 #
 $(KERNEL_COBJS:.o=.d): %.d: %.c
@@ -530,5 +523,5 @@
 
 #
-#  ftHgRpC[ðã«
+#  デフォルトコンパイルルールを上書き
 #
 %.o: %.c
Index: ssp_qb_r5f100le_cs/trunk/sample/hello_world.c
===================================================================
--- ssp_qb_r5f100le_cs/trunk/sample/hello_world.c	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/sample/hello_world.c	(revision 95)
@@ -10,41 +10,37 @@
  *             Nagoya Municipal Industrial Research Institute, JAPAN
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
  
  /*
- *  TOPPERS/SSPÌHello WorldvOD
+ *  TOPPERS/SSPのHello Worldプログラム．
  */
 
@@ -56,5 +52,5 @@
 
 /*
- *  OoÍ
+ *  ログ出力
  */
 #define LOGPUT(str)	\
@@ -62,16 +58,16 @@
 
 /*
- *  \¦·ébZ[W
+ *  表示するメッセージ
  */
 #define MSGHELLO ("Hello World.!\n")
 
 void task(intptr_t exinf) {
-	/* VA|[gÌI[v */
+	/* シリアルポートのオープン */
 	serial_opn_por(TASK_PORTID);
 	
-	/* bZ[WÌ\¦ */
+	/* メッセージの表示 */
 	(void)LOGPUT(MSGHELLO);
 	
-	/* J[lÌI¹ */
+	/* カーネルの終了 */
 	(void)ext_ker();
 }
Index: ssp_qb_r5f100le_cs/trunk/sample/hello_world.cfg
===================================================================
--- ssp_qb_r5f100le_cs/trunk/sample/hello_world.cfg	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/sample/hello_world.cfg	(revision 95)
@@ -1,4 +1,4 @@
 /*
- *  TOPPESRS/SSPJ[lÌTvvO
+ *  TOPPESRS/SSPカーネルのサンプルプログラム
  */
 
Index: ssp_qb_r5f100le_cs/trunk/sample/hello_world.h
===================================================================
--- ssp_qb_r5f100le_cs/trunk/sample/hello_world.h	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/sample/hello_world.h	(revision 95)
@@ -5,34 +5,30 @@
  *  Copyright (C) 2010 by Meika Sugimoto
  * 
- *  ãLì ÒÍCÈºÌ (1)`(4) Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»EüÏE
- *  ÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 
- *      \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[X
- *      R[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Égp
- *      Å«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gipÒ}
- *      j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºLÌ³Û
- *      ØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Égp
- *      Å«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌì
- *         \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉñ
- *        ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹Q
- *      ©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆDÜ½C
- *      {\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©ÈéRÉîÃ
- *      ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
+ *  上記著作権者は，以下の (1)〜(4) の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改変・
+ *  再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作権
+ *      表示，この利用条件および下記の無保証規定が，そのままの形でソース
+ *      コード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使用
+ *      できる形で再配布する場合には，再配布に伴うドキュメント（利用者マ
+ *      ニュアルなど）に，上記の著作権表示，この利用条件および下記の無保
+ *      証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使用
+ *      できない形で再配布する場合には，次のいずれかの条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著作
+ *        権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに報
+ *        告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
+ *      からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
+ *      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
+ *      く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨æ
- *  ÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚIÉÎ·
- *  éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEFAÌp
- *  Éæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»ÌÓCð
- *  íÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者およ
+ *  びTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的に対す
+ *  る適合性も含めて，いかなる保証も行わない．また，本ソフトウェアの利用
+ *  により直接的または間接的に生じたいかなる損害に関しても，その責任を負
+ *  わない．
  * 
  */
@@ -42,5 +38,5 @@
 
 /*
- *  ^[QbgË¶Ìè`
+ *  ターゲット依存の定義
  */
 #include "target_test.h"
Index: ssp_qb_r5f100le_cs/trunk/sample/sample1.c
===================================================================
--- ssp_qb_r5f100le_cs/trunk/sample/sample1.c	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/sample/sample1.c	(revision 95)
@@ -10,89 +10,83 @@
  *             Nagoya Municipal Industrial Research Institute, JAPAN
  * 
- *  ãLì ÒÍCÈºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»Eü
- *  ÏEÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
- *       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
- *      XR[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±
- *      ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ
- *        ñ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
- *      Ü½C{\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©Èé
- *      RÉîÃ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgð
- *      ÆÓ·é±ÆD
+ *  上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI
- *  ÉÎ·éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEF
- *  AÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»
- *  ÌÓCðíÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
  * 
  */
  
 /* 
- *  TOPPERS/SSPÌTvvO
- *
- *  SSPJ[lÌî{IÈ®ìðmF·é½ßÌTvvOD
- *
- *  vOÌTv:
- *
- *  [UC^tF[Xðó¯ÂC^XNÆC3ÂÌÀsÀs³êé
- *  ^XNÆÅ\¬³êéD^XNID¨æÑDæxÝèÍÈºÌÊèD
- *     (^XNID)   (N®Dæx)    (ÀsDæx)
- *      MAIN_TASK    MAIN_PRIORITY     (¶É¯¶)
- *      TASK1        TASK1_PRIORITY    (¶É¯¶)
- *      TASK2        TASK2_PRIORITY    (¶É¯¶)
+ *  TOPPERS/SSPのサンプルプログラム
+ *
+ *  SSPカーネルの基本的な動作を確認するためのサンプルプログラム．
+ *
+ *  プログラムの概要:
+ *
+ *  ユーザインタフェースを受け持つメインタスクと，3つの並行実行される
+ *  タスクとで構成される．タスクIDおよび優先度設定は以下の通り．
+ *     (タスクID)   (起動時優先度)    (実行時優先度)
+ *      MAIN_TASK    MAIN_PRIORITY     (左に同じ)
+ *      TASK1        TASK1_PRIORITY    (左に同じ)
+ *      TASK2        TASK2_PRIORITY    (左に同じ)
  *      TASK3        TASK3_PRIORITY    TASK3_EXEPRIORITY
  *
- *  Ü½CN®üúª2bÌüúnhiüúnhID: CYC1j¨æÑ
- *  C^XNN®pÌüúnh(üúnhID: MAIN_CYC)ðp¢éD
- *
- *  ÀsÀs³êé^XNÍCtask_loopñó[vðÀs·éxÉC^XNª
- *  ÀsÅ é±Æð çí·bZ[Wð\¦·éDó[vðÀs·é
- *  ÌÍCó[vÈµÅbZ[WðoÍ·éÆC½ÊÌbZ[WªoÍ
- *  ³êCvOÌ®ìªmFµ¸ç­Èé½ßÅ éDÜ½Cá¬ÈV
- *  A|[gðp¢ÄbZ[WðoÍ·éêÉC·×ÄÌbZ[W
- *  ªoÍÅ«éæ¤ÉCbZ[WÌÊð§À·éÆ¢¤Rà éD
- *
- *  üúnh(CYC1)ÍCN®µ½±Æð¦·bZ[Wð\¦·éD
- *  vOÌN®¼ãÍCüúnh(CYC1)Íâ~óÔÉÈÁÄ¢éD
- *
- *  C^XNÍCüúnh(MAIN_CYC)©ç100~b²ÆÉN®³êC
- *  VAI/O|[g©çÌ¶üÍðs¢CüÍ³ê½
- *  ¶ÉÎµ½ðÀs·éDüÍ³ê½¶ÆÌÖWÍÌÊèD
- *  'Q'ªüÍ³êéÆCvOðI¹·éD
- *
- *  '1' : ÎÛ^XNðTASK1ÉØè·¦éiúÝèjD
- *  '2' : ÎÛ^XNðTASK2ÉØè·¦éD
- *  '3' : ÎÛ^XNðTASK3ÉØè·¦éD
- *  'a' : ÎÛ^XNðact_tskÉæèN®·éD
- *  'e' : ÎÛ^XNðÖÌ^[ÉæèI¹³¹éD
- *  'c' : üúnhð®ìJn³¹éD
- *  'C' : üúnhð®ìâ~³¹éD
- *  'b' : A[nhð5bãÉN®·éæ¤®ìJn³¹éD
- *  'B' : A[nhð®ìâ~³¹éD
- *  'z' : ÎÛ^XNÉCPUáOð­¶³¹éi^XNðI¹³¹éjD
- *  's' : CxgtO(ID:FLG1)ÉY^XNÉÖA·érbgðZbg·éD
- *  'l' : ·×ÄÌ^XNÖA·éCxgtO(ID:FLG1)ÌrbgðNA·éD
- *  'p' : |[OÅCxgtO(FLG1)ðÒÂD
- *  'd' : |[OÅf[^L
-[(ID:DTQ1)Öf[^ðM·éD
- *  'r' : |[OÅf[^L
-[(ID:DTQ1)©çf[^ðóM·éD
+ *  また，起動周期が2秒の周期ハンドラ（周期ハンドラID: CYC1）および
+ *  メインタスク起動用の周期ハンドラ(周期ハンドラID: MAIN_CYC)を用いる．
+ *
+ *  並行実行されるタスクは，task_loop回空ループを実行する度に，タスクが
+ *  実行中であることをあらわすメッセージを表示する．空ループを実行する
+ *  のは，空ループなしでメッセージを出力すると，多量のメッセージが出力
+ *  され，プログラムの動作が確認しずらくなるためである．また，低速なシ
+ *  リアルポートを用いてメッセージを出力する場合に，すべてのメッセージ
+ *  が出力できるように，メッセージの量を制限するという理由もある．
+ *
+ *  周期ハンドラ(CYC1)は，起動したことを示すメッセージを表示する．
+ *  プログラムの起動直後は，周期ハンドラ(CYC1)は停止状態になっている．
+ *
+ *  メインタスクは，周期ハンドラ(MAIN_CYC)から100ミリ秒ごとに起動され，
+ *  シリアルI/Oポートからの文字入力を行い，入力された
+ *  文字に対応した処理を実行する．入力された文字と処理の関係は次の通り．
+ *  'Q'が入力されると，プログラムを終了する．
+ *
+ *  '1' : 対象タスクをTASK1に切り換える（初期設定）．
+ *  '2' : 対象タスクをTASK2に切り換える．
+ *  '3' : 対象タスクをTASK3に切り換える．
+ *  'a' : 対象タスクをact_tskにより起動する．
+ *  'e' : 対象タスクを関数のリターンにより終了させる．
+ *  'c' : 周期ハンドラを動作開始させる．
+ *  'C' : 周期ハンドラを動作停止させる．
+ *  'b' : アラームハンドラを5秒後に起動するよう動作開始させる．
+ *  'B' : アラームハンドラを動作停止させる．
+ *  'z' : 対象タスクにCPU例外を発生させる（タスクを終了させる）．
+ *  's' : イベントフラグ(ID:FLG1)に当該タスクに関連するビットをセットする．
+ *  'l' : すべてのタスク関連するイベントフラグ(ID:FLG1)のビットをクリアする．
+ *  'p' : ポーリングでイベントフラグ(FLG1)を待つ．
+ *  'd' : ポーリングでデータキュー(ID:DTQ1)へデータを送信する．
+ *  'r' : ポーリングでデータキュー(ID:DTQ1)からデータを受信する．
  */
 
@@ -108,5 +102,5 @@
 
 /*
- *  VXeT[rXÌG[nhO
+ *  システムサービスのエラーハンドリング
  */
 #define SVC(expression)											\
@@ -118,12 +112,12 @@
 
 /*
- *  ÀñÀs³êé^XNÖÌbZ[WÌæ
+ *  並列実行されるタスクへのメッセージ領域
  */
 char message[3];
 
 /*
- *  [vñ
- */
-ulong_t	task_loop;		/* ^XNàÅÌ[vñ */
+ *  ループ回数
+ */
+ulong_t	task_loop;		/* タスク内でのループ回数 */
 
 void init_task(intptr_t exinf)
@@ -134,25 +128,25 @@
 #endif /* TASK_LOOP */
 	
-	/* VA|[gÌI[v */
+	/* シリアルポートのオープン */
 	SVC(serial_opn_por(TASK_PORTID));
 	SVC(serial_ctl_por(TASK_PORTID , IOCTL_CRLF));
 	
-	/* O^XNÌú» */
+	/* ログタスクの初期化 */
 	logtask_initialize(LOGTASK_PORTID);
 	
-	/* N®bZ[WÌoÍ */
+	/* 起動メッセージの出力 */
 	syslog(LOG_INFO , "Sample program starts.");
 	
-	/* üúnhÌN® */
+	/* 周期ハンドラの起動 */
 	SVC(sta_cyc(MAIN_CYC));
 	
 	/*
- 	 *  [vñÌÝè
+ 	 *  ループ回数の設定
 	 *
-	 *  TASK_LOOPª}Nè`³êÄ¢éêCªè¹¸ÉCTASK_LOOPÉè
-	 *  `³ê½lðC^XNàÅÌ[vñÆ·éD
+	 *  TASK_LOOPがマクロ定義されている場合，測定せずに，TASK_LOOPに定
+	 *  義された値を，タスク内でのループ回数とする．
 	 *
-	 *  MEASURE_TWICEª}Nè`³êÄ¢éêC1ñÚÌªèÊðÌÄ
-	 *  ÄC2ñÚÌªèÊðg¤D1ñÚÌªèÍ·ßÌÔªoé½ßD
+	 *  MEASURE_TWICEがマクロ定義されている場合，1回目の測定結果を捨て
+	 *  て，2回目の測定結果を使う．1回目の測定は長めの時間が出るため．
 	 */
 #ifdef TASK_LOOP
@@ -163,5 +157,5 @@
 	SVC(get_tim(&stime1));
 	for (i = 0; i < task_loop; i++) {
-		/* Ô©¹¬Ì½ßÌ[vÅ èC±±ÅÍ½àµÈ¢ */
+		/* 時間かせぎのためのループであり，ここでは何もしない */
 	}
 	SVC(get_tim(&stime2));
@@ -180,5 +174,5 @@
 	
 
-	/* VA|[g©çÌ¶óM */
+	/* シリアルポートからの文字受信 */
 	if(serial_rea_dat(TASK_PORTID , &c , 1) > 0)
 	{
@@ -231,5 +225,5 @@
 			break;
 		default:
-			/* G[\¦ */
+			/* エラー表示 */
 			syslog(LOG_INFO , "Unknown command.");
 			break;
@@ -241,5 +235,5 @@
 void task(intptr_t exinf)
 {
-	/* exinfÍ^XNÔ  */
+	/* exinfはタスク番号  */
 	uint_t tskno = (uint_t)exinf;
 	int_t		n = 0;
@@ -256,12 +250,12 @@
 	{
 		for (i = 0; i < task_loop; i++) {
-			/* Ô©¹¬Ì½ßÌ[vÅ èC±±ÅÍ½àµÈ¢ */
+			/* 時間かせぎのためのループであり，ここでは何もしない */
 		}
 		
-		/* ^XNÔÌ\¦ */
+		/* タスク番号の表示 */
 		syslog(LOG_NOTICE, "task%d is running (%03d).   %s",
 										tskno, ++n, graph[tskno-1]);
 		
-		/* R}hæ¾CbZ[WÌæðNA */
+		/* コマンド取得，メッセージ領域をクリア */
 		command = message[tskno - 1];
 		message[tskno - 1] = 0;
Index: ssp_qb_r5f100le_cs/trunk/sample/sample1.cfg
===================================================================
--- ssp_qb_r5f100le_cs/trunk/sample/sample1.cfg	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/sample/sample1.cfg	(revision 95)
@@ -1,4 +1,4 @@
 /*
- *  TOPPESRS/SSPJ[lÌTvvO
+ *  TOPPESRS/SSPカーネルのサンプルプログラム
  */
 
Index: ssp_qb_r5f100le_cs/trunk/sample/sample1.h
===================================================================
--- ssp_qb_r5f100le_cs/trunk/sample/sample1.h	(revision 93)
+++ ssp_qb_r5f100le_cs/trunk/sample/sample1.h	(revision 95)
@@ -7,34 +7,30 @@
  *             Nagoya Municipal Industrial Research Institute, JAPAN
  * 
- *  ãLì ÒÍCÈºÌ (1)`(4) Ìðð½·êÉÀèC{\tgEF
- *  Ai{\tgEFAðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»EüÏE
- *  ÄzziÈºCpÆÄÔj·é±Æð³Åø·éD
- *  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 
- *      \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[X
- *      R[hÉÜÜêÄ¢é±ÆD
- *  (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJ­Égp
- *      Å«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gipÒ}
- *      j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºLÌ³Û
- *      ØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Égp
- *      Å«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·±ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌì
- *         \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *    (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉñ
- *        ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹Q
- *      ©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆDÜ½C
- *      {\tgEFAÌ[UÜ½ÍGh[U©çÌ¢©ÈéRÉîÃ
- *      ­¿©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
+ *  上記著作権者は，以下の (1)〜(4) の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改変・
+ *  再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作権
+ *      表示，この利用条件および下記の無保証規定が，そのままの形でソース
+ *      コード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使用
+ *      できる形で再配布する場合には，再配布に伴うドキュメント（利用者マ
+ *      ニュアルなど）に，上記の著作権表示，この利用条件および下記の無保
+ *      証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使用
+ *      できない形で再配布する場合には，次のいずれかの条件を満たすこと．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著作
+ *        権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに報
+ *        告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
+ *      からも，上記著作権者およびTOPPERSプロジェクトを免責すること．また，
+ *      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
+ *      く請求からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
  * 
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨æ
- *  ÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚIÉÎ·
- *  éK«àÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEFAÌp
- *  Éæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»ÌÓCð
- *  íÈ¢D
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者およ
+ *  びTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的に対す
+ *  る適合性も含めて，いかなる保証も行わない．また，本ソフトウェアの利用
+ *  により直接的または間接的に生じたいかなる損害に関しても，その責任を負
+ *  わない．
  * 
  */
@@ -44,5 +40,5 @@
 
 /*
- *  ^[QbgË¶Ìè`
+ *  ターゲット依存の定義
  */
 #include "target_test.h"
@@ -81,9 +77,9 @@
 
 #ifndef TASK_PORTID
-#define	TASK_PORTID		1					/* ¶üÍ·éVA|[gID */
+#define	TASK_PORTID		1					/* 文字入力するシリアルポートID */
 #endif /* TASK_PORTID */
 
 #ifndef LOOP_REF
-#define LOOP_REF		ULONG_C(1000000)	/* ¬xvªpÌ[vñ */
+#define LOOP_REF		ULONG_C(1000000)	/* 速度計測用のループ回数 */
 #endif /* LOOP_REF */
 
