rem: UBYTE               man[ 4 ];  man[ 0 ] = manufacturer >> 24; man[ 1 ] = manufacturer >> 16; man[ 2 ] = manufacturer >> 16;
context: ISAPNP_FindCard( REG( a0, struct ISAPNP_Card* last_card ),                  REG( d0, LONG                manufacturer ),                 REG( d1, WORD                product ),                 REG( d2, BYTE                revision ),                 REG( d3, LONG                serial ),                 REG( a6, struct ISAPNPBase*  res ) ){  struct ISAPNP_Card* card;  UBYTE               man[ 4 ];    man[ 0 ] = manufacturer >> 24;  man[ 1 ] = manufacturer >> 16;  man[ 2 ] = manufacturer >> 16;  if( last_card == NULL )  {    card = (struct ISAPNP_Card*) res->m_Cards.lh_Head;  }  else  {    card = (struct ISAPNP_Card*) last_card->m_Node.ln_Succ;  }  while( card->m_Node.ln_Succ != NULL )  {    if( manufacturer == -1 ||         ISAPNP_MAKE_ID( card->m_ID.m_Vendor[ 0 ],                        card->m_ID.m_Vendor[ 1 ],                        card->m_ID.m_Vendor[ 2 ] ) == manufacturer )    {      if( product == -1 || card->m_ID.m_ProductID == product )      {        if( revision == -1 || card->m_ID.m_Revision == revision )        {          if( serial == -1 || (LONG) card->m_SerialNumber == serial )          {            return card;          }        }      }    }    card = (struct ISAPNP_Card*) card->m_Node.ln_Succ;  }  return NULL;}