📄 e2asc.c
字号:
#include "wbk.h"
typedef unsigned char EBCDIC;
/*
#define Debug
*/
EBCDIC ascii_to_ebcdic[]=
{ 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /*0x00 - 0x07*/
0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /*0x08 - 0x0f*/
0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /*0x10 - 0x17*/
0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /*0x18 - 0x1f*/
0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /*0x20 - 0x27*/
0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /*0x28 - 0x2f*/
0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /*0x30 - 0x37*/
0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /*0x38 - 0x3f*/
0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /*0x40 - 0x47*/
0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /*0x48 - 0x4f*/
0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /*0x50 - 0x57*/
0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x00, 0x00, 0x6d, /*0x58 - 0x5f*/
0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /*0x60 - 0x67*/
0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /*0x68 - 0x6f*/
0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /*0x70 - 0x77*/
0xa7, 0xa8, 0xa9, 0xc0, 0x80, 0xd0, 0xa1, 0x07, /*0x78 - 0x7f*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0x80 - 0x87*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0x88 - 0x8f*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0x90 - 0x97*/
0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x00, /*0x98 - 0x9f*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0xa0 - 0xa7*/
0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, /*0xa8 - 0xaf*/
0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, /*0xb0 - 0xb7*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0xb8 - 0xbf*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0xc0 - 0xc7*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0xc8 - 0xcf*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0xd0 - 0xd7*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0xd8 - 0xdf*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0xe0 - 0xe7*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0xe8 - 0xef*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0xf0 - 0xf7*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0xf8 - 0xff*/
};
EBCDIC ebcdic_to_ascii[]=
{ 0x00, 0x01, 0x02, 0x03, 0x00, 0x09, 0x00, 0x7f, /*0x00 - 0x07*/
0x00, 0x00, 0x00, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /*0x08 - 0x0f*/
0x10, 0x11, 0x12, 0x13, 0x00, 0x00, 0x08, 0x00, /*0x10 - 0x17*/
0x18, 0x19, 0x00, 0x00, 0x1c, 0x1d, 0x1e, 0x1f, /*0x18 - 0x1f*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x17, 0x1b, /*0x20 - 0x27*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x06, 0x07, /*0x28 - 0x2f*/
0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x04, /*0x30 - 0x37*/
0x00, 0x00, 0x00, 0x00, 0x14, 0x15, 0x00, 0x1a, /*0x38 - 0x3f*/
0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0x40 - 0x47*/
0x00, 0x00, 0x5b, 0x2e, 0x3c, 0x28, 0x2b, 0xb3, /*0x48 - 0x4f*/
0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0x50 - 0x57*/
0x00, 0x00, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0xaa, /*0x58 - 0x5f*/
0x2d, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0x60 - 0x67*/
0x00, 0x00, 0x00, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, /*0x68 - 0x6f*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0x70 - 0x77*/
0x00, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, /*0x78 - 0x7f*/
0x7c, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /*0x80 - 0x87*/
0x68, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0x88 - 0x8f*/
0x00, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, /*0x90 - 0x97*/
0x71, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0x98 - 0x9f*/
0x00, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, /*0xa0 - 0xa7*/
0x79, 0x7a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0xa8 - 0xaf*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0xb0 - 0xb7*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0xb8 - 0xbf*/
0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /*0xc0 - 0xc7*/
0x48, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0xc8 - 0xcf*/
0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, /*0xd0 - 0xd7*/
0x51, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0xd8 - 0xdf*/
0x5c, 0x00, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, /*0xe0 - 0xe7*/
0x59, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0xe8 - 0xef*/
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /*0xf0 - 0xf7*/
0x38, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0xf8 - 0xff*/
};
AscToEbcd (AscStr, EbcdStr, MapLen)
EBCDIC *AscStr, *EbcdStr;
int MapLen;
{ int i;
for (i = 0; i < MapLen; i++)
EbcdStr[i] = ascii_to_ebcdic[AscStr[i]];
return (0);
}
EbcdToAsc (EbcdStr,AscStr,MapLen)
EBCDIC *AscStr, *EbcdStr;
int MapLen;
{ int i;
for (i = 0; i < MapLen; i++)
AscStr[i] = ebcdic_to_ascii[EbcdStr[i]];
return (0);
}
AscToEbcd1(AscStr,EbcdStr,MapLen)
char *AscStr,*EbcdStr;
int MapLen;
{
static char dAscEbcd[10]= {
0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9
};
int i;
int neg;
for(i=0; i<MapLen; i++) {
EbcdStr[i]=(AscStr[i+1]&0x0f)+0xf0;
}
if(AscStr[0]=='-') EbcdStr[MapLen-1] &= 0xdf; else EbcdStr[MapLen-1] &= 0xcf;
/* EbcdStr[MapLen]=0; */
return(0);
}
/************************************************************
* Function :Translate the pos struct to host message *
* Input : hostmsg, point to the host message *
* pos, point to the pos structure *
* serial_no, point to the serial number *
* Output : len, point to the host length *
* Return : OK if success,else FAIL *
************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -