思路是这样的,汉字都有一个内码,内码和区位码有个简单的换算,呵呵

解决方案 »

  1.   

    void get_prhz(char incode[],char bytes[])
    {
     unsigned char qh,wh;
     unsigned long offset;
     qh=incode[0]-0xa0;
     wh=incode[1]-0xa0;
     offset=(94*(qh-16)+(wh-1))*72l;
     lseek(hzk_p,offset,SEEK_SET);
     read(hzk_p,bytes,72);
    }void dishz(int x0,int y0,char code[],int color)
    {
     register int i,j;
     char far *p;
     char pr_mat[72];
     char dis_mat[72];
     p=(char far *)(0xa0000000+80*y0+x0/8);
     get_prhz(code,pr_mat);
     get_hz(pr_mat,dis_mat);
     for(i=0;i<=2;i++)
      for(j=0;j<24;j++)
       {
        outportb(0x3c4,0x02);
        outportb(0x3c5,color);
        *(p+80*j+i)=dis_mat[3*j+i];
        }
    }上面是一段C程序从这里可以看出
     qh=incode[0]-0xa0;//区码是汉字内码第一个字节减A0H
     wh=incode[1]-0xa0;//位码是汉字内码第二个字节减A0H