📄 main.c
字号:
buffer[13]|=((Font_Buf[3]&0x01)?1:0)<<6;
buffer[13]|=((Font_Buf[6]&0x40)?1:0)<<5;
buffer[13]|=((Font_Buf[8]&010)?1:0)<<4;
buffer[13]|=((Font_Buf[10]&0x04)?1:0)<<3;
buffer[13]|=((Font_Buf[12]&0x01)?1:0)<<2;
buffer[13]|=((Font_Buf[15]&0x80)?1:0)<<1;
buffer[13]|=(Font_Buf[17]&0x10)?1:0;
buffer[14]|=((Font_Buf[1]&0x02)?1:0)<<7;
buffer[14]|=((Font_Buf[4]&0x80)?1:0)<<6;
buffer[14]|=((Font_Buf[6]&0x20)?1:0)<<5;
buffer[14]|=((Font_Buf[8]&0x08)?1:0)<<4;
buffer[14]|=((Font_Buf[10]&0x02)?1:0)<<3;
buffer[14]|=((Font_Buf[13]&0x80)?1:0)<<2;
buffer[14]|=((Font_Buf[15]&0x40)?1:0)<<1;
buffer[14]|=(Font_Buf[17]&0x08)?1:0;
buffer[15]|=((Font_Buf[1]&0x01)?1:0)<<7;
buffer[15]|=((Font_Buf[4]&0x40)?1:0)<<6;
buffer[15]|=((Font_Buf[6]&0x10)?1:0)<<5;
buffer[15]|=((Font_Buf[8]&0x04)?1:0)<<4;
buffer[15]|=((Font_Buf[10]&0x01)?1:0)<<3;
buffer[15]|=((Font_Buf[13]&0x40)?1:0)<<2;
buffer[15]|=((Font_Buf[15]&0x20)?1:0)<<1;
buffer[15]|=(Font_Buf[17]&0x04)?1:0;
buffer[16]|=((Font_Buf[2]&0x80)?1:0)<<7;
buffer[16]|=((Font_Buf[4]&0x20)?1:0)<<6;
buffer[16]|=((Font_Buf[6]&0x08)?1:0)<<5;
buffer[16]|=((Font_Buf[8]&0x02)?1:0)<<4;
buffer[16]|=((Font_Buf[11]&0x80)?1:0)<<3;
buffer[16]|=((Font_Buf[13]&0x20)?1:0)<<2;
buffer[16]|=((Font_Buf[15]&0x10)?1:0)<<1;
buffer[16]|=(Font_Buf[17]&0x02)?1:0;
buffer[17]|=((Font_Buf[2]&0x40)?1:0)<<7;
buffer[17]|=((Font_Buf[4]&0x10)?1:0)<<6;
buffer[17]|=((Font_Buf[6]&0x04)?1:0)<<5;
buffer[17]|=((Font_Buf[8]&0x01)?1:0)<<4;
buffer[17]|=((Font_Buf[11]&0x40)?1:0)<<3;
buffer[17]|=((Font_Buf[13]&0x10)?1:0)<<2;
buffer[17]|=((Font_Buf[15]&0x08)?1:0)<<1;
buffer[17]|=(Font_Buf[17]&0x01)?1:0;
}
main()
{
char xdata str1[14];
char xdata str2[10];
char Font[240];
char reverse_font[240];
// gk_memset(Font,0x81,16);
// gk_memset(reverse_font,0,8);
// reverse_font2(Font,reverse_font);
// mod_price=0x5555;
// shiftR1(mod_price);
// mod_price>>=1;
Convert_Font();
memset(Font,0x19,8);
SDLC_Parse(Font,8);
reverse_font[0]=0x12;
reverse_font[1]=0x13;
reverse_font[2]=0x14;
reverse_font[3]=0x15;
reverse_font[4]=0x16;
reverse_font[5]=0x19;
reverse_font[6]=0x5c;
reverse_font[7]=0x19;
reverse_font[8]=0x5c;
reverse_font[9]=0x19;
reverse_font[10]=0xb1;
SDLC_Packet(reverse_font);
// KEYOUT1=100;
aaaaaaaaa.aa[1]=100;
aaaaaaaaa.bb[1]=100;
p=0x4000;//aaaaaaaaa;
*p=0x10;
(*(voidfunc)0x490)();
for(number=0;number<65536;number++)
{
check_sum+=number;
}
gk_memset(Font,0x81,32);
gk_memset(Font+32,0xa1,32);
gk_memset(Font+64,0xb1,32);
gk_memset(Font+96,0xc1,32);
gk_memset(reverse_font,0x11,240);
reverse_font3(Font,reverse_font);
reverse_font3(Font+32,reverse_font+2);
reverse_font3(Font+64,reverse_font+4);
reverse_font3(Font+96,reverse_font+6);
//ic_update_controls(&aaaa);
//price=*(int* )hanzi_daxie[1];
// memset(str2,0x77,10);
// memset(str1,0x66,10);
// aaa=str2;
// p=str2;//(void *)aaa;
// memcpy(str1,p,10);
// price=1234567;
// mod_price=price/1000000;
//recv_pro(1,1);
sub_function1();
sub_function2(sub_function1);
IE=0x00; //disable all interrupt
// int number=-100;
serial1_initialize();
gk_timer0_initialize(); // Enable TMR0 for 10mS interrupts
gk_timer2_initialize(); // Enable TMR2 for 10mS interrupts
InitialFlag();
Set24V_ON();
Set24V_OFF();
// memset(str1,0xff,10);
// memcpy(str2,str1,10);
// memcmp(str2,str1,10);
gk_memset(str1,0xff,10);
gk_memcpy(str2,str1,10);
gk_memcmp(str2,str1,10);
// if( number<0)
// number=0-number;
// number=abs(number);
// led1_delay=abs(led1_delay);
// gk_memcpy(str2,Serial_Pre,10);
system_param.parameter0=300;
EA=0x01; //enable Total interrupt
// fp = (void (*)(void))0x00;
// (*fp)(); //把控制权交给kernel。
for(;;)
{
if(SERIAL_R_COMPLETE_1)
{
SERIAL_R_COMPLETE_1=0;
if(serial_1_check_sum()==0x55) //进行数据校验
{
SERIAL_R_COMPLETE_1=1;
}
}
if(!PRINTERBUSY)
{
}
else
{
}
kkkkk++;
}
}
int sub_function1()
{
int i,j;
if((i+j)>100)
return 100;
return 0;
}
int sub_function2(int k)
{
int i,j;
if((i+j+k)>100)
return 100;
return 0;
}
/*
char recv_pro(char data1,char data2)
{
char result=0xFF;
switch(data1)
{
case 0x61:
result=0; //成功
break;
case 0x90:
result=1;
break;
case 0x62:
switch(data2)
{
case 0x81:
result=2; //回送的数据可能错
break;
case 0x83:
result=3; //文件选择无效
break;
}
break;
case 0x63:
result=4; //可以再试
break;
case 0x64:
result=5; //状态标志为改变
break;
case 0x65:
result=6; //写eeprom未成功
break;
case 0x67:
result=7; //错误的长度
break;
case 0x69:
switch(data2)
{
case 0x00:
result=8; //cla与线路保护要求不匹配
break;
case 0x01:
result=9; //无效的状态
break;
case 0x81:
result=10; //命令与文件结构不相容
break;
case 0x82:
result=11; //不满足安全状态
break;
case 0x83:
result=12; //密钥被锁死
break;
case 0x85:
result=13; //使用条件不满足
break;
case 0x87:
result=14; //无安全报文
break;
case 0x88:
result=15; //安全报文数据项不正确
break;
}
break;
case 0x6a:
switch(data2)
{
case 0x80: //数据域参数错误
result=16;
break;
case 0x81: //卡片已锁死
result=17;
break;
case 0x82:
result=18; //文件不存在
break;
case 0x83:
result=19; //记录未找到
break;
case 0x84:
result=20; //空间不够
break;
case 0x86:
result=21; //参数p1 p2 错误
break;
}
break;
case 0x6B:
result=22; //偏移量错误
break;
case 0x6C:
result=23; //le 错误
break;
case 0x6E:
result=24; //无效的cla
break;
case 0x6F:
result=25; //数据无效
break;
case 0x93:
switch(data2)
{
case 0x02:
result=26; //mac错误
break;
case 0x03:
result=27; //应用被锁死
break;
}
break;
case 0x94:
switch(data2)
{
case 0x01:
result=28; //金额不足
break;
case 0x03:
result=29; //密钥未找到
break;
case 0x06:
result=30; //所需的mac不可用
break;
}
break;
}
return result;
}
void ic_get_register_nb(IC_HEAD* pHead)
{
if(pHead==NULL)
return;
pHead->cla = 0xc0;
pHead->ins = 0xf0;
pHead->p1 = 0x00;
pHead->p2 = 0x00;
return;
}
long ic_get_register_nb1(long nMode, long nCardType)
{
IC_HEAD Head;
char Data[256];
char* p = Data;
ic_get_register_nb(&Head);
//memcpy(p, &Head, sizeof(Head));
//p += sizeof(Head);
*p = (unsigned char)Head.cla;
p++;
*p = (unsigned char)Head.ins;
p++;
*p = (unsigned char)Head.p1;
p++;
*p = (unsigned char)Head.p2;
p++;
*p = 0x10;
p++;
return 1;//TRUE;
}
void ic_terminal_register(IC_HEAD* pHead)
{
if(pHead==NULL)
return;
pHead->cla = 0xc0;
pHead->ins = 0xf1;
pHead->p1 = 0x00;
pHead->p2 = 0x00;
return;
}
long ic_terminal_register1(long nMode, long nCardType, char* pData, long nLen)
{
IC_HEAD Head;
char Data[256];
char* p = Data;
ic_terminal_register(&Head);
//memcpy(p, &Head, sizeof(Head));
//p += sizeof(Head);
*p = (unsigned char)Head.cla;
p++;
*p = (unsigned char)Head.ins;
p++;
*p = (unsigned char)Head.p1;
p++;
*p = (unsigned char)Head.p2;
p++;
*p = (unsigned char)nLen;
p++;
memcpy(p, pData, nLen);
p += nLen;
return 1;
}
void ic_issue_invoice(IC_HEAD* pHead)
{
if(pHead==NULL)
return;
pHead->cla = 0xc0;
pHead->ins = 0xf2;
pHead->p1 = 0x00;
pHead->p2 = 0x00;
return;
}
void ic_update_controls(IC_HEAD* pHead)
{
if(pHead==NULL)
return;
pHead->cla = 0xc0;
pHead->ins = 0xf6;
pHead->p1 = 0x00;
pHead->p2 = 0x00;
return;
}
*/
/*
pFont 当前字型的首地址
reverse_font 转换后的数据首地址 8 个字节的空间
*/
//针对于 EPSON-110 打印机的数据格式
void reverse_font2(char *pFont,char *reverse_font)
{
// char *pFont;
char i,j;
// char reverse_font[8];
// char Font[17];
char temp_Font;
// gk_memset(Font,0x81,16);
gk_memset(reverse_font,0,8);
// pFont=Font;
for(i=0;i<8;i++)
{
temp_Font=*pFont;
for(j=0;j<8;j++)
{
if(temp_Font&0x80)
{
reverse_font[j]<<=1;
reverse_font[j]|=1;
}
temp_Font<<=1;
}
pFont+=2; //根据进纸的位置确定偏移量
}
}
/*
pFont 当前字型的首地址
reverse_font 转换后的数据首地址 480 个字节的空间
*/
//针对于 EPSON-192 打印机的数据格式
void reverse_font3(char *pFont,char *reverse_font)
{
char i;
// gk_memset(reverse_font,0,8);
for(i=0;i<16;i++)
{
reverse_font[30*i]=*pFont++;
reverse_font[30*i+1]=*pFont++;//根据进纸的位置确定偏移量
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -