📄 test
字号:
/*********************************************
* INPUT.C *
* copyright by djzhang &mqchen *
* xj inc. 1997.8.26 *
*********************************************/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <io.h>
#include <fcntl.h>
#include <assert.h>
#define MAXHZ 400
#define MAXHZ24 100
static num=0;
static number=0;
void main()
{
FILE *fp;
int fph;
FILE *ftxt;
char by[72];
char change[72];
unsigned char tmp[8];
unsigned char mask[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
unsigned int *asciitab;
int i,j,k,flag=0;
unsigned int c1,c2,cc;
unsigned long int l,l1,l2;
fp=fopen("386hzb.h","w+");
fprintf(fp,"\nASCLIB_NUM DW 128");
asciitab=(unsigned int *)malloc(sizeof(unsigned int)*MAXHZ);
asciitab[0]=0xffff;
fph=open("hzk16",O_RDONLY|O_BINARY);
ftxt=fopen("386hz16.txt","rb");
while(!feof(ftxt)) {
fread(tmp,sizeof(char),2,ftxt);
while((unsigned char)tmp[0] < 0xa1) {
if( feof(ftxt) ) { flag = 1; break; }
fseek(ftxt,-1,SEEK_CUR);
fread(tmp,sizeof(char),2,ftxt);
}
if(flag) break;
for(i=0;i<MAXHZ;i++) {
c1=tmp[0]*256+tmp[1];
if(c1<asciitab[i]) {
c2 = asciitab[i];
asciitab[i] = c1;
num++;
while(asciitab[i]!=0xffff) {
cc = asciitab[i+1] ;
asciitab[i+1]=c2;
c2 = cc;
i++;
}
break;
}
else if(c1 == asciitab[i]) break;
}
}
free(asciitab);
num +=8;
fprintf(fp,"\nHZ16_NUM DW %d",num);
close(fph);
fclose(ftxt);
asciitab=(unsigned int *)malloc(sizeof(unsigned int)*MAXHZ24);
asciitab[0]=0xffff;
fph=open("hzk24s",O_RDONLY|O_BINARY);
ftxt=fopen("386hz24.txt","rb");
while(!feof(ftxt)) {
fread(tmp,sizeof(char),2,ftxt);
while((unsigned char)tmp[0] < 0xa1) {
if( feof(ftxt) ) { flag = 1; break; }
fseek(ftxt,-1,SEEK_CUR);
fread(tmp,sizeof(char),2,ftxt);
}
if(flag) break;
for(i=0;i<MAXHZ24;i++) {
c1=tmp[0]*256+tmp[1];
if(c1<asciitab[i]) {
c2 = asciitab[i];
asciitab[i] = c1;
number++;
while(asciitab[i]!=0xffff) {
cc = asciitab[i+1] ;
asciitab[i+1]=c2;
c2 = cc;
i++;
}
break;
}
else if(c1 == asciitab[i]) break;
}
}
fprintf(fp,"\nHZ24_NUM DW %d",number);
close(fph);
fclose(ftxt);
free(asciitab);
fph=open("asc16",O_RDONLY|O_BINARY);
fprintf(fp,"\n");
fprintf(fp,"\nASCLIB");
for(i=0;i<128;i++) {
l=i*16;
lseek(fph,l,SEEK_SET);
read(fph,by,16);
fprintf(fp," DB ");
for(j=0;j<16;j++) {
if(j==15)
fprintf(fp,"0%02xH ",(unsigned char)by[j]);
else
fprintf(fp,"0%02xH,",(unsigned char)by[j]);
}
fprintf(fp,"\n");
}
fseek(fp,-3,SEEK_CUR);
fprintf(fp,"\n \n");
close(fph);
asciitab=(unsigned int *)malloc(sizeof(unsigned int)*MAXHZ);
asciitab[0]=0xffff;
fph=open("hzk16",O_RDONLY|O_BINARY);
ftxt=fopen("386hz16.txt","rb");
while(!feof(ftxt)) {
fread(tmp,sizeof(char),2,ftxt);
while((unsigned char)tmp[0] < 0xa1) {
if( feof(ftxt) ) { flag = 1; break; }
fseek(ftxt,-1,SEEK_CUR);
fread(tmp,sizeof(char),2,ftxt);
}
if(flag) break;
for(i=0;i<MAXHZ;i++) {
c1=tmp[0]*256+tmp[1];
if(c1<asciitab[i]) {
c2 = asciitab[i];
asciitab[i] = c1;
num++;
while(asciitab[i]!=0xffff) {
cc = asciitab[i+1] ;
asciitab[i+1]=c2;
c2 = cc;
i++;
}
break;
}
else if(c1 == asciitab[i]) break;
}
}
fprintf(fp,"\n");
fprintf(fp,"\nHZ16LIB");
i=0;
while(asciitab[i]!=0xffff) {
fprintf(fp," DB ");
l1=(unsigned long) ((asciitab[i]>>8)-0xa1)*94;
l2=(unsigned long) asciitab[i]&0xff;
fprintf(fp,"0%02xH,",(unsigned)(asciitab[i]&0xff));
fprintf(fp,"0%02xH,",(unsigned)(asciitab[i]>>8) );
l2=l2-0xa1;
l=(l1+l2)*32;
tmp[0]=asciitab[i]>>8;
tmp[1]=asciitab[i]&0xff;
tmp[2]='\0';
i++;
lseek(fph,l,SEEK_SET);
read(fph,by,32);
for(j=0;j<32;j++){
if(j==0)
fprintf(fp,"0%02xH",(unsigned char)by[j]);
else
fprintf(fp,",0%02xH",(unsigned char)by[j]);
}
fprintf(fp,";%s\n",tmp);
}
free(asciitab);
fprintf(fp,"\n DB 0F0H,0FFH,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,003H,000H,01fH,");
fprintf(fp, "000H,0ffH,007H,000H,03cH,000H,0f8H,00fH,0f8H,00fH,0f8H,000H,0f8H,000H,0f8H,000H");
fprintf(fp,"\n DB 0F1H,0FFH,000H,001H,000H,007H,000H,03cH,001H,0c0H,00eH,000H,070H,000H,080H,000H,0ffH,0ffH,");
fprintf(fp, "0ffH,0ffH,000H,000H,000H,000H,0f0H,0f9H,0f9H,0f9H,0ffH,0c0H,07fH,080H,07fH,003H");
fprintf(fp,"\n DB 0F2H,0FFH,000H,000H,0c0H,000H,078H,000H,007H,000H,000H,0e0H,000H,01cH,000H,003H,0ffH,0ffH,");
fprintf(fp, "0ffH,0ffH,000H,000H,000H,000H,0ffH,0ffH,0ffH,0ffH,000H,0ffH,000H,0ffH,0f1H,0feH");
fprintf(fp,"\n DB 0F3H,0FFH,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,080H,000H,0f0H,000H,");
fprintf(fp, "0feH,000H,001H,0c0H,000H,078H,0ffH,0feH,0ffH,0feH,000H,03eH,000H,03eH,000H,03eH");
fprintf(fp,"\n DB 0F4H,0FFH,0f8H,000H,0f8H,000H,0f8H,000H,0ffH,0ffH,0ffH,0ffH,03cH,000H,007H,000H,000H,0ffH,");
fprintf(fp, "000H,01fH,000H,003H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H");
fprintf(fp,"\n DB 0F5H,0FFH,07fH,003H,0feH,007H,0feH,007H,0dfH,0cfH,09fH,0cfH,000H,000H,000H,000H,0ffH,0ffH,");
fprintf(fp, "0ffH,0ffH,080H,000H,070H,000H,00eH,000H,001H,0c0H,000H,03cH,000H,007H,000H,001H");
fprintf(fp,"\n DB 0F6H,0FFH,0f1H,0feH,0e3H,0fcH,0e3H,0fcH,0ffH,0f8H,0ffH,0f8H,000H,000H,000H,000H,0ffH,0ffH,");
fprintf(fp, "0ffH,0ffH,000H,003H,000H,01cH,000H,0e0H,007H,000H,078H,000H,0c0H,000H,000H,000H");
fprintf(fp,"\n DB 0F7H,0FFH,000H,03eH,000H,03eH,000H,03eH,000H,03eH,000H,03eH,000H,078H,001H,0c0H,0feH,000H,");
fprintf(fp, "0f0H,000H,080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H");
fprintf(fp,"\n\n");
close(fph);
fclose(ftxt);
/******************************/
/**********24 X 24 HZ**********/
asciitab=(unsigned int *)malloc(sizeof(unsigned int)*MAXHZ24);
asciitab[0]=0xffff;
fph=open("hzk24s",O_RDONLY|O_BINARY);
ftxt=fopen("386hz24.txt","rb");
while(!feof(ftxt)) {
fread(tmp,sizeof(char),2,ftxt);
while((unsigned char)tmp[0] < 0xa1) {
if( feof(ftxt) ) { flag = 1; break; }
fseek(ftxt,-1,SEEK_CUR);
fread(tmp,sizeof(char),2,ftxt);
}
if(flag) break;
for(i=0;i<MAXHZ24;i++) {
c1=tmp[0]*256+tmp[1];
if(c1<asciitab[i]) {
c2 = asciitab[i];
asciitab[i] = c1;
number++;
while(asciitab[i]!=0xffff) {
cc = asciitab[i+1] ;
asciitab[i+1]=c2;
c2 = cc;
i++;
}
break;
}
else if(c1 == asciitab[i]) break;
}
}
/* fprintf(fp1,"\nHZ24_NUM DW %d",number); */
fprintf(fp,"\n");
fprintf(fp,"\nHZ24LIB");
i=0;
while(asciitab[i]!=0xffff) {
fprintf(fp," DB ");
l1=(unsigned long) ((asciitab[i]>>8)-0xb0)*94;
l2=(unsigned long) asciitab[i]&0xff;
fprintf(fp,"0%02xH,",(unsigned)(asciitab[i]&0xff));
fprintf(fp,"0%02xH",(unsigned)(asciitab[i]>>8) );
l2=l2-0xa1;
l=(l1+l2)*72;
tmp[0]=asciitab[i]>>8;
tmp[1]=asciitab[i]&0xff;
tmp[2]='\0';
i++;
lseek(fph,l,SEEK_SET);
read(fph,by,72);
cc=0x80;
for(j=0;j<72;j++)
change[j]= 0;
for(j=0;j<72;)
{
if(j < 24)c1=0;
else if(j < 48)c1=1;
else c1=2;
flag = 0;
for(k=c1;k<72;)
{
if(by[k]&cc)
change[j] += mask[flag];
k+=3;
flag++;
if(flag == 8){
j++;
flag=0;
}
}
cc>>=1;
if(cc==0)cc=0x80;
}
for(j=0;j<72;j++){
if(j==0)
fprintf(fp,",0%02xH",(unsigned char)change[j]);
else
fprintf(fp,",0%02xH",(unsigned char)change[j]);
}
fprintf(fp," ;%s\n",tmp);
}
free(asciitab);
fprintf(fp,"\nChar_end DW ?");
close(fph);
fclose(fp);
fclose(ftxt);
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -