I am having problem understanding the behavior of the code below, can somebody advise me on how the function behave and work?This is a function that suppose to add or drop data from a hardware device. Thanks.
bit OADM_AddDrop(void)
{
bit bDropOADS=0, bAddOADS=0;
int i=0, iPortValue=0, iPorts=pMsg[0], j=0;
//sbit SetBit;
if(iPorts>PORT_SWITCH_MAX) return false; //every call can only set up to 8 ports/mirrors
for(i=0; i<iPorts; i++)
{
iPortValue=pMsg[i+1];
if(iPortValue>0 && iPortValue<9) //from 1 to 64
{
//////////testing//////////////
ACC='K';
TX_BYTE();
ACC='K';
TX_BYTE();
ACC=iPortValue;
TX_BYTE();
ACC=pCardStatus[STATUS_DROP_BYTE];
TX_BYTE();
ACC='K';
TX_BYTE();
ACC='K';
TX_BYTE();
/////////////////////////////////
j=iPortValue-1;
if (j==0)
{SetBit10=pCardStatus[STATUS_DROP_BYTE]^0; SetBit10=1;}
if (j==1)
{SetBit11=pCardStatus[STATUS_DROP_BYTE]^1; SetBit11=1;}
if (j==2)
{SetBit12=pCardStatus[STATUS_DROP_BYTE]^2; SetBit12=1;}
if (j==3)
{SetBit13=pCardStatus[STATUS_DROP_BYTE]^3; SetBit13=1;}
if (j==4)
{SetBit14=pCardStatus[STATUS_DROP_BYTE]^4; SetBit14=1;}
if (j==5)
{SetBit15=pCardStatus[STATUS_DROP_BYTE]^5; SetBit15=1;}
if (j==6)
{SetBit16=pCardStatus[STATUS_DROP_BYTE]^6; SetBit16=1;}
if (j==7)
{SetBit17=pCardStatus[STATUS_DROP_BYTE]^7; SetBit17=1;}
/*if (j==0) SetBit10=1;
if (j==1) SetBit11=1;
if (j==2) SetBit12=1;
if (j==3) SetBit13=1;
if (j==4) SetBit14=1;
if (j==5) SetBit15=1;
if (j==6) SetBit16=1;
if (j==7) SetBit17=1;*/
bDropOADS=true;