-   
 
   trcv_mbx
  
    -   
  
 
 	
  
  
    
 ER      trcv_mbx ( ID mbxid, T_MSG **ppk_msg, TMO tmout );
 
 | 
  
 
 
 	
  
  
    
 MOVW    AX, #tmout_hi
 
 PUSH    AX
 
 MOVW    AX, #tmout_lo
 
 PUSH    AX
 
 MOVW    BC, #LOWW(_ppk_msg)
 
 MOV     A, #mbxid
 
 CALL    !!_trcv_mbx
 
 ADDW    SP, #0x0004
 
 | 
  
 
 
 
  
  
    | 
 | 
    
 | 
    
 | 
  
  
    | 
 | 
    
 ID      mbxid;
 
 | 
    
 | 
  
  
    | 
 | 
    
 T_MSG   **ppk_msg;
 
 | 
    
 メッセージの先頭アドレスを格納する領域へのポインタ
  
 | 
  
  
    | 
 | 
    
 TMO     tmout;
 
 | 
    
 | 
  
 
 
 mbxidで指定されたメールボックスからメッセージを受信し,その先頭アドレスを
ppk_msgで指定された領域に格納します。
 
 ただし,本サービス・コールを発行した際,対象メールボックスからメッセージを受信することができなかった(待ちキューにメッセージがキューイングされていなかった)場合には,メッセージの受信処理は実行されず,自タスクを対象メールボックスの待ちキューにメッセージの受信要求順(FIFO順)でキューイングします。
 
 これにより,自タスクは,レディ・キューから外れ,RUNNING状態からWAITING状態(メッセージ待ち状態)へと遷移します。
 
 なお,メッセージ待ち状態の解除は,以下の場合に行われ,メッセージ待ち状態からREADY状態へと遷移します。
 
  
  
  
    | 
 | 
    
 | 
  
  
    
 snd_mbxの発行により,対象メールボックスにメッセージが送信された
  
 | 
    
 | 
  
  
    | 
 | 
    
 | 
  
  
    | 
 | 
    
 | 
  
  
    | 
 | 
    
 | 
  
 
 備考1 待ち時間
tmoutにTMO_FEVRが指定された際には“
rcv_mbxと同等の処理”を,TMO_POLが指定された際には“
prcv_mbxと同等の処理”を実行します。