the blog of devil

#include<conio.h>
#include<stdio.h>
#include"ApiExUsb.h"
#include<queue>
using namespace std;
#pragma comment(lib,"ApiExUsb.lib")
const int port_a=0x288;
const int port_b=0x289;
const int port_c=0x28a;
const int port_con=0x28b;
const int maxn=100005;
char input[maxn];
char Outp[maxn];
int outpos=0;
int now=0;
char xls[14]={'0','1','2','3','4','5','6','7','8','9','+','-','*','/'};
int data1[16]={0};
int mp[25];
int data2[16]={0};
queue<int> num;
queue<char> ops;
void display();
char _Read(int x);
void _Output();
void Clear();
void cmdsetup();
void getres();
int setint(char x);
int prior[4][4]={
    {1,1,0,0},
    {1,1,0,0},
    {1,1,1,1},
    {1,1,1,1}
};
int Getmp(char x)
{
    if(x<='9'&&x>='0')
        return (int)(x-'0');
    if(x=='+')return 10;
    else if(x=='-') return 11;
    else if(x=='*') return 12;
    else if(x=='/') return 13;
    else if(x=='e') return 14;
    else if(x=='r') return 15;
    else if(x=='o') return 16;
}
void resetdata()
{
    for(int i=0;i<16;i++)
    {
    data1[i]=0xa1;
    data2[i]=0xa1;
    }
    return;
}
void Error_res()
{
    strcpy(Outp,"error");
    outpos=5;
}
#初始化
void init()
{
                #mp为0~9,+-*/,=的二进制
        for(int i=0;i<10;i++)
        {
            mp[i]=0xa3b0+i;   
        }
    mp[10]=0xa3ab;
    mp[11]=0xa3ad;
    mp[12]=0xa1c1;
    mp[13]=0xa1c2;
    mp[14]=0xa3c5;
    mp[15]=0xa3d2;
    mp[16]=0xa3cf;
    resetdata();
}
char _Read(int x) //读取函数
{
    char tmp;
    tmp=xls[x];
    return tmp;
}
void _Output()   //显示函数
{
    int i=0;
    if(now<8)
    {
        i=0;
        for(i;i<now;i++)
        {
            int tmp=mp[Getmp(input[i])];
            data1[2*i]=tmp/256;
            data1[2*i+1]=tmp%256;
            //printf("%d %d",data1[2*i],data1[2*i+1]);
        }
        //puts("");
    }
    else
    {
        i=0;
    for(i;i<8;i++)
    {
        int tmp=mp[Getmp(input[i+now-8])];
        data1[2*i]=tmp/256;
        data1[2*i+1]=tmp%256;
        //printf("%d %d",data1[2*i],data1[2*i+1]);
    }
    //puts("");
    }
    if(outpos<=8)
    {
        i=8-outpos;
        for(i;i<8;i++)
        {
            int tmp=mp[Getmp(Outp[i-(8-outpos)])];
            data2[2*i]=tmp/256;
            data2[i*2+1]=tmp%256;
            //printf("%d %d",data2[2*i],data2[2*i+1]);
        }
        //puts("");
    }
    /*for(i=0;i<16;i++)
    {
        printf("%d ",data1[i]);
    }
    puts("");
    for(i=0;i<16;i++)
    {
        printf("%d ",data2[i]);
    }
    puts("");*/
    display();
}


bool isdigit(char x) //是数字否
{
    if(x>='0'&&x<='9')
        return true;
    return false;
}
void getres(int t)
{
    bool f=false;
    if(t<0) {f=true; t=-t;}
    while(t)
    {
        Outp[outpos++]=t%10+'0';
        t/=10;
    }
    if(f) Outp[outpos++]='-';
    reverse(Outp,Outp+outpos);
    Outp[outpos]='