BOOL a( int num )
{
  int i;

  for(i=0;i<num;i++){
     if( box[i] >= 1000 )
     return TRUE;
  }

  return FALSE;
}

これは,ちゃんとTRUEが帰りますか?
for分の中でreturnしても関数を抜けますよね?