Ignore:
Timestamp:
Jun 2, 2015, 3:39:53 PM (9 years ago)
Author:
nmir-saito
Message:

ファイルの mime-type 変更

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ssp_qb_r5f100le_cs/trunk/target/qb_r5f100le_cs/ssp_rl78/sample1/src/sample1.c

    • Property svn:mime-type set to text/plain; charset=shift_jis
    r93 r95  
    1010 *             Nagoya Municipal Industrial Research Institute, JAPAN
    1111 *
    12  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    13  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    14  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    15  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    16  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    17  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    18  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    20 ƒƒ“ƒgi—˜—p
    21  *      ŽÒƒ}ƒjƒ
    22 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    23  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    24  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    25  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    26  *      ‚ƁD
    27  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    28 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    29 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    30  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    31  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    32  *        •ñ‚·‚邱‚ƁD
    33  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    34  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    35  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    36  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    37  *      –Ɛӂ·‚邱‚ƁD
     12 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     13 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     14 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     15 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     16 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     17 *      スコード中に含まれていること.
     18 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     19 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     20 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     21 *      の無保証規定を掲載すること.
     22 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     23 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     24 *      と.
     25 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     26 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     27 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     28 *        報告すること.
     29 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     30 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     31 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     32 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     33 *      免責すること.
    3834 *
    39  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    40  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    41  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    42  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    43  *  ‚̐ӔC‚𕉂í‚È‚¢D
     35 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     36 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     37 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     38 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     39 *  の責任を負わない.
    4440 *
    4541 */
    4642 
    4743/*
    48  *  TOPPERS/SSP‚̃Tƒ“ƒvƒ‹ƒvƒƒOƒ‰ƒ€
    49  *
    50  *  SSPƒJ[ƒlƒ‹‚ÌŠî–{“I‚È“®ì‚ðŠm”F‚·‚邽‚߂̃Tƒ“ƒvƒ‹ƒvƒƒOƒ‰ƒ€D
    51  *
    52  *  ƒvƒƒOƒ‰ƒ€‚ÌŠT—v:
    53  *
    54  *  ƒ†[ƒUƒCƒ“ƒ^ƒtƒF[ƒX‚ðŽó‚¯Ž‚ƒƒCƒ“ƒ^ƒXƒN‚ƁC3‚‚̕ÀsŽÀs‚³‚ê‚é
    55  *  ƒ^ƒXƒN‚Ƃō\¬‚³‚ê‚éDƒ^ƒXƒNID‚¨‚æ‚Ñ—Dæ“xÝ’è‚͈ȉº‚Ì’Ê‚èD
    56  *     (ƒ^ƒXƒNID)   (‹N“®Žž—Dæ“x)    (ŽÀsŽž—Dæ“x)
    57  *      MAIN_TASK    MAIN_PRIORITY     (¶‚É“¯‚¶)
    58  *      TASK1        TASK1_PRIORITY    (¶‚É“¯‚¶)
    59  *      TASK2        TASK2_PRIORITY    (¶‚É“¯‚¶)
     44 *  TOPPERS/SSPのサンプルプログラム
     45 *
     46 *  SSPカーネルの基本的な動作を確認するためのサンプルプログラム.
     47 *
     48 *  プログラムの概要:
     49 *
     50 *  ユーザインタフェースを受け持つメインタスクと,3つの並行実行される
     51 *  タスクとで構成される.タスクIDおよび優先度設定は以下の通り.
     52 *     (タスクID)   (起動時優先度)    (実行時優先度)
     53 *      MAIN_TASK    MAIN_PRIORITY     (左に同じ)
     54 *      TASK1        TASK1_PRIORITY    (左に同じ)
     55 *      TASK2        TASK2_PRIORITY    (左に同じ)
    6056 *      TASK3        TASK3_PRIORITY    TASK3_EXEPRIORITY
    6157 *
    62  *  ‚Ü‚½C‹N“®ŽüŠú‚ª2•b‚ÌŽüŠúƒnƒ“ƒhƒ‰iŽüŠúƒnƒ“ƒhƒ‰ID: CYC1j‚¨‚æ‚Ñ
    63  *  ƒƒCƒ“ƒ^ƒXƒN‹N“®—p‚ÌŽüŠúƒnƒ“ƒhƒ‰(ŽüŠúƒnƒ“ƒhƒ‰ID: MAIN_CYC)‚ð—p‚¢‚éD
    64  *
    65  *  •ÀsŽÀs‚³‚ê‚éƒ^ƒXƒN‚́Ctask_loop‰ñ‹óƒ‹[ƒv‚ðŽÀs‚·‚é“x‚ɁCƒ^ƒXƒN‚ª
    66  *  ŽÀs’†‚Å‚ ‚邱‚Æ‚ð‚ ‚ç‚í‚·ƒƒbƒZ[ƒW‚ð•\Ž¦‚·‚éD‹óƒ‹[ƒv‚ðŽÀs‚·‚é
    67  *  ‚̂́C‹óƒ‹[ƒv‚È‚µ‚сƒbƒZ[ƒW‚ðo—Í‚·‚é‚ƁC‘½—ʂ̃ƒbƒZ[ƒW‚ªo—Í
    68  *  ‚³‚êCƒvƒƒOƒ‰ƒ€‚Ì“®ì‚ªŠm”F‚µ‚¸‚ç‚­‚Ȃ邽‚ß‚Å‚ ‚éD‚Ü‚½C’ᑬ‚ȃV
    69  *  ƒŠƒAƒ‹ƒ|[ƒg‚ð—p‚¢‚ăƒbƒZ[ƒW‚ðo—Í‚·‚éê‡‚ɁC‚·‚ׂẴƒbƒZ[ƒW
    70  *  ‚ªo—Í‚Å‚«‚é‚悤‚ɁCƒƒbƒZ[ƒW‚̗ʂ𐧌À‚·‚é‚Æ‚¢‚¤——R‚à‚ ‚éD
    71  *
    72  *  ŽüŠúƒnƒ“ƒhƒ‰(CYC1)‚́C‹N“®‚µ‚½‚±‚Æ‚ðŽ¦‚·ƒƒbƒZ[ƒW‚ð•\Ž¦‚·‚éD
    73  *  ƒvƒƒOƒ‰ƒ€‚Ì‹N“®’¼Œã‚́CŽüŠúƒnƒ“ƒhƒ‰(CYC1)‚Í’âŽ~ó‘Ô‚É‚È‚Á‚Ä‚¢‚éD
    74  *
    75  *  ƒƒCƒ“ƒ^ƒXƒN‚́CŽüŠúƒnƒ“ƒhƒ‰(MAIN_CYC)‚©‚ç100ƒ~ƒŠ•b‚²‚Æ‚É‹N“®‚³‚êC
    76  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚©‚ç‚Ì•¶Žš“ü—Í‚ðs‚¢C“ü—Í‚³‚ꂽ
    77  *  •¶Žš‚ɑΉž‚µ‚½ˆ—‚ðŽÀs‚·‚éD“ü—Í‚³‚ꂽ•¶Žš‚Əˆ—‚ÌŠÖŒW‚ÍŽŸ‚Ì’Ê‚èD
    78  *  'Q'‚ª“ü—Í‚³‚ê‚é‚ƁCƒvƒƒOƒ‰ƒ€‚ðI—¹‚·‚éD
    79  *
    80  *  '1' : ‘Ώۃ^ƒXƒN‚ðTASK1‚ɐ؂芷‚¦‚éi‰ŠúÝ’èjD
    81  *  '2' : ‘Ώۃ^ƒXƒN‚ðTASK2‚ɐ؂芷‚¦‚éD
    82  *  '3' : ‘Ώۃ^ƒXƒN‚ðTASK3‚ɐ؂芷‚¦‚éD
    83  *  'a' : ‘Ώۃ^ƒXƒN‚ðact_tsk‚É‚æ‚è‹N“®‚·‚éD
    84  *  'e' : ‘Ώۃ^ƒXƒN‚ðŠÖ”‚̃Šƒ^[ƒ“‚É‚æ‚èI—¹‚³‚¹‚éD
    85  *  'c' : ŽüŠúƒnƒ“ƒhƒ‰‚𓮍ìŠJŽn‚³‚¹‚éD
    86  *  'C' : ŽüŠúƒnƒ“ƒhƒ‰‚𓮍ì’âŽ~‚³‚¹‚éD
    87  *  'b' : ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚ð5•bŒã‚É‹N“®‚·‚é‚悤“®ìŠJŽn‚³‚¹‚éD
    88  *  'B' : ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚𓮍ì’âŽ~‚³‚¹‚éD
    89  *  'z' : ‘Ώۃ^ƒXƒN‚ÉCPU—áŠO‚𔭐¶‚³‚¹‚éiƒ^ƒXƒN‚ðI—¹‚³‚¹‚éjD
    90  *  's' : ƒCƒxƒ“ƒgƒtƒ‰ƒO(ID:FLG1)‚É“–ŠYƒ^ƒXƒN‚ÉŠÖ˜A‚·‚éƒrƒbƒg‚ðƒZƒbƒg‚·‚éD
    91  *  'l' : ‚·‚ׂẴ^ƒXƒNŠÖ˜A‚·‚éƒCƒxƒ“ƒgƒtƒ‰ƒO(ID:FLG1)‚̃rƒbƒg‚ðƒNƒŠƒA‚·‚éD
    92  *  'p' : ƒ|[ƒŠƒ“ƒO‚ŃCƒxƒ“ƒgƒtƒ‰ƒO(FLG1)‚ð‘҂D
    93  *  'd' : ƒ|[ƒŠƒ“ƒO‚Ńf[ƒ^ƒLƒ
    94 [(ID:DTQ1)‚Öƒf[ƒ^‚𑗐M‚·‚éD
    95  *  'r' : ƒ|[ƒŠƒ“ƒO‚Ńf[ƒ^ƒLƒ
    96 [(ID:DTQ1)‚©‚çƒf[ƒ^‚ðŽóM‚·‚éD
     58 *  また,起動周期が2秒の周期ハンドラ(周期ハンドラID: CYC1)および
     59 *  メインタスク起動用の周期ハンドラ(周期ハンドラID: MAIN_CYC)を用いる.
     60 *
     61 *  並行実行されるタスクは,task_loop回空ループを実行する度に,タスクが
     62 *  実行中であることをあらわすメッセージを表示する.空ループを実行する
     63 *  のは,空ループなしでメッセージを出力すると,多量のメッセージが出力
     64 *  され,プログラムの動作が確認しずらくなるためである.また,低速なシ
     65 *  リアルポートを用いてメッセージを出力する場合に,すべてのメッセージ
     66 *  が出力できるように,メッセージの量を制限するという理由もある.
     67 *
     68 *  周期ハンドラ(CYC1)は,起動したことを示すメッセージを表示する.
     69 *  プログラムの起動直後は,周期ハンドラ(CYC1)は停止状態になっている.
     70 *
     71 *  メインタスクは,周期ハンドラ(MAIN_CYC)から100ミリ秒ごとに起動され,
     72 *  シリアルI/Oポートからの文字入力を行い,入力された
     73 *  文字に対応した処理を実行する.入力された文字と処理の関係は次の通り.
     74 *  'Q'が入力されると,プログラムを終了する.
     75 *
     76 *  '1' : 対象タスクをTASK1に切り換える(初期設定).
     77 *  '2' : 対象タスクをTASK2に切り換える.
     78 *  '3' : 対象タスクをTASK3に切り換える.
     79 *  'a' : 対象タスクをact_tskにより起動する.
     80 *  'e' : 対象タスクを関数のリターンにより終了させる.
     81 *  'c' : 周期ハンドラを動作開始させる.
     82 *  'C' : 周期ハンドラを動作停止させる.
     83 *  'b' : アラームハンドラを5秒後に起動するよう動作開始させる.
     84 *  'B' : アラームハンドラを動作停止させる.
     85 *  'z' : 対象タスクにCPU例外を発生させる(タスクを終了させる).
     86 *  's' : イベントフラグ(ID:FLG1)に当該タスクに関連するビットをセットする.
     87 *  'l' : すべてのタスク関連するイベントフラグ(ID:FLG1)のビットをクリアする.
     88 *  'p' : ポーリングでイベントフラグ(FLG1)を待つ.
     89 *  'd' : ポーリングでデータキュー(ID:DTQ1)へデータを送信する.
     90 *  'r' : ポーリングでデータキュー(ID:DTQ1)からデータを受信する.
    9791 */
    9892
     
    108102
    109103/*
    110  *  ƒVƒXƒeƒ€ƒT[ƒrƒX‚̃Gƒ‰[ƒnƒ“ƒhƒŠƒ“ƒO
     104 *  システムサービスのエラーハンドリング
    111105 */
    112106#define SVC(expression)                                                                                 \
     
    118112
    119113/*
    120  *  •À—ñŽÀs‚³‚ê‚éƒ^ƒXƒN‚ւ̃ƒbƒZ[ƒW—̈æ
     114 *  並列実行されるタスクへのメッセージ領域
    121115 */
    122116char message[3];
    123117
    124118/*
    125  *  ƒ‹[ƒv‰ñ”
    126  */
    127 ulong_t task_loop;              /* ƒ^ƒXƒN“à‚ł̃‹[ƒv‰ñ” */
     119 *  ループ回数
     120 */
     121ulong_t task_loop;              /* タスク内でのループ回数 */
    128122
    129123void init_task(intptr_t exinf)
     
    134128#endif /* TASK_LOOP */
    135129       
    136         /* ƒVƒŠƒAƒ‹ƒ|[ƒg‚̃I[ƒvƒ“ */
     130        /* シリアルポートのオープン */
    137131        SVC(serial_opn_por(TASK_PORTID));
    138132        SVC(serial_ctl_por(TASK_PORTID , IOCTL_CRLF));
    139133       
    140         /* ƒƒOƒ^ƒXƒN‚̏‰Šú‰» */
     134        /* ログタスクの初期化 */
    141135        logtask_initialize(LOGTASK_PORTID);
    142136       
    143         /* ‹N“®ƒƒbƒZ[ƒW‚̏o—Í */
     137        /* 起動メッセージの出力 */
    144138        syslog(LOG_INFO , "Sample program starts.");
    145139       
    146         /* ŽüŠúƒnƒ“ƒhƒ‰‚Ì‹N“® */
     140        /* 周期ハンドラの起動 */
    147141        SVC(sta_cyc(MAIN_CYC));
    148142       
    149143        /*
    150          *  ƒ‹[ƒv‰ñ”‚̐ݒè
     144         *  ループ回数の設定
    151145         *
    152          *  TASK_LOOP‚ªƒ}ƒNƒ’è‹`‚³‚ê‚Ä‚¢‚éê‡C‘ª’肹‚¸‚ɁCTASK_LOOP‚É’è
    153          *  ‹`‚³‚ꂽ’l‚ðCƒ^ƒXƒN“à‚ł̃‹[ƒv‰ñ”‚Æ‚·‚éD
     146         *  TASK_LOOPがマクロ定義されている場合,測定せずに,TASK_LOOPに定
     147         *  義された値を,タスク内でのループ回数とする.
    154148         *
    155          *  MEASURE_TWICE‚ªƒ}ƒNƒ’è‹`‚³‚ê‚Ä‚¢‚éê‡C1‰ñ–Ú‚Ì‘ª’茋‰Ê‚ðŽÌ‚Ä
    156          *  ‚āC2‰ñ–Ú‚Ì‘ª’茋‰Ê‚ðŽg‚¤D1‰ñ–Ú‚Ì‘ª’è‚Í’·‚ß‚ÌŽžŠÔ‚ªo‚邽‚߁D
     149         *  MEASURE_TWICEがマクロ定義されている場合,1回目の測定結果を捨て
     150         *  て,2回目の測定結果を使う.1回目の測定は長めの時間が出るため.
    157151         */
    158152#ifdef TASK_LOOP
     
    163157        SVC(get_tim(&stime1));
    164158        for (i = 0; i < task_loop; i++) {
    165                 /* ŽžŠÔ‚©‚¹‚¬‚Ì‚½‚߂̃‹[ƒv‚Å‚ ‚èC‚±‚±‚ł͉½‚à‚µ‚È‚¢ */
     159                /* 時間かせぎのためのループであり,ここでは何もしない */
    166160        }
    167161        SVC(get_tim(&stime2));
     
    180174       
    181175
    182         /* ƒVƒŠƒAƒ‹ƒ|[ƒg‚©‚ç‚Ì•¶ŽšŽóM */
     176        /* シリアルポートからの文字受信 */
    183177        if(serial_rea_dat(TASK_PORTID , &c , 1) > 0)
    184178        {
     
    231225                        break;
    232226                default:
    233                         /* ƒGƒ‰[•\Ž¦ */
     227                        /* エラー表示 */
    234228                        syslog(LOG_INFO , "Unknown command.");
    235229                        break;
     
    241235void task(intptr_t exinf)
    242236{
    243         /* exinf‚̓^ƒXƒN”ԍ†  */
     237        /* exinfはタスク番号  */
    244238        uint_t tskno = (uint_t)exinf;
    245239        int_t           n = 0;
     
    256250        {
    257251                for (i = 0; i < task_loop; i++) {
    258                         /* ŽžŠÔ‚©‚¹‚¬‚Ì‚½‚߂̃‹[ƒv‚Å‚ ‚èC‚±‚±‚ł͉½‚à‚µ‚È‚¢ */
     252                        /* 時間かせぎのためのループであり,ここでは何もしない */
    259253                }
    260254               
    261                 /* ƒ^ƒXƒN”ԍ†‚Ì•\Ž¦ */
     255                /* タスク番号の表示 */
    262256                syslog(LOG_NOTICE, "task%d is running (%03d).   %s",
    263257                                                                                tskno, ++n, graph[tskno-1]);
    264258               
    265                 /* ƒRƒ}ƒ“ƒhŽæ“¾CƒƒbƒZ[ƒW—̈æ‚ðƒNƒŠƒA */
     259                /* コマンド取得,メッセージ領域をクリア */
    266260                command = message[tskno - 1];
    267261                message[tskno - 1] = 0;
Note: See TracChangeset for help on using the changeset viewer.