{uchari,tag=0,temp[4];

ReadSafeMemory(temp);

if(temp[0]==0x07)

{ReadMainMemory(32,p,14);//读主存储器14字节:32-35特征码;36-3A帐号;3B-3F余额

if(p[0]==0x00&&p[1]==0x0f&&p[2]==0xf0&&p[3]==0xff)//特征码:0x00,0x0f,0xf0,0xff

{for(i=0;i《10;i++)

if((p[i+4]》=0&&p[i+4]《=9))tag=tag+1;

if(tag!=10)return(2);

elsereturn(3);

}

else

return(1);

}

elsereturn(0);

}

//*********************卡初始化函数********************//

//说明:

//函数使用的数组参数用来存放写入的的ID值;

//返回值信息:

//2:初始化失败!

//3:初始化成功!

ucharInitial_Card(uchar*p)

{ucharPsw[3]={0xff,0xff,0xff};

uchari,j,temp=0;

uchartp[20];

//ResetIC(ICcode);//IC卡复位,读出复位后的厂家信息代码A2131091;

j=VerifyPassword(Psw);

WriteMainMemory(32,0x00);//写特征码:

WriteMainMemory(33,0x0f);

WriteMainMemory(34,0xf0);

WriteMainMemory(35,0xff);

for(i=0;i《5;i++)//写帐号

WriteMainMemory(36+i,p[i]);//从32+i地址开始写5字节帐号;

for(i=0;i《5;i++)

WriteMainMemory(41+i,0);//从32+i地址开始写5字节初始化金额0000.0

j=Read_Card(tp);

if(j==3)

{for(i=0;i《10;i++)

if(p[i]==tp[i+4])temp=temp+1;

}

if(temp==10)return(3);

elsereturn(2);

}

//***************卡修复函数********************//

//说明:

//返回值信息:

//0:修复失败!

//1:修复成功!

ucharRepair_Card(void)

{ucharPsw[3]={0xff,0xff,0xff};

uchari,j,temp;

i=VerifyPassword(Psw);

return(i);

}

//********************加卡函数***********//

voidAdd_Card(uchar*p)

{uchari;

uchartemp[14];

i=Read_Card(temp);

if(i==3)

{temp[13]=temp[13]+p[4];

if(temp[13]》9){temp[13]=temp[13]-10;temp[12]=temp[12]+1;}

temp[12]=temp[12]+p[3];

if(temp[12]》9){temp[12]=temp[12]-10;temp[11]=temp[11]+1;}

temp[11]=temp[11]+p[2];

if(temp[11]》9){temp[11]=temp[11]-10;temp[10]=temp[10]+1;}

temp[10]=temp[10]+p[1];

if(temp[10]》9){temp[10]=temp[10]-10;temp[9]=temp[9]+1;}

WriteMainMemory(41,temp[9]);

WriteMainMemory(42,temp[10]);

WriteMainMemory(43,temp[11]);

WriteMainMemory(44,temp[12]);

WriteMainMemory(45,temp[13]);

}

}

//********************减卡函数***********//