-
Notifications
You must be signed in to change notification settings - Fork 8
/
ebcdic.h
139 lines (130 loc) · 6.17 KB
/
ebcdic.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
/* EBCDIC.H V1.0
| The EBCDIC characters.
|
| Copyright (c) 1988,1989,1990,1991 by
| The Hebrew University of Jerusalem, Computation Center.
|
| This software is distributed under a license from the Hebrew University
| of Jerusalem. It may be copied only under the terms listed in the license
| agreement. This copyright message should never be changed or removed.
| This software is gievn without any warranty, and the Hebrew University
| of Jerusalem assumes no responsibility for any damage that might be caused
| by use oR misuse of this software.
*/
/* Control characters: */
#define NUL 0x0 /* Null */
#define SOH 0x1 /* Start of Header */
#define STX 0x2 /* Start of text */
#define DLE 0x10 /* Data Link Escape */
#define ETB 0x26 /* End of Transmission Block */
#define ENQ 0x2d /* Enquire */
#define SYN 0x32 /* Synchronization character */
#define NAK 0x3d /* Negative Ack */
#define ACK0 0x70 /* Positive ACK */
#define PAD 0xff /* Pad character */
/* The written characters */
#define E_MINUS 0x60 /* - */
#define E_PLUS 0x4e /* + */
#define E_SP 0x40
#define E_A 0xc1
#define E_B 0xc2
#define E_C 0xc3
#define E_D 0xc4
#define E_E 0xc5
#define E_F 0xc6
#define E_G 0xc7
#define E_H 0xc8
#define E_I 0xc9
#define E_J 0xd1
#define E_M 0xd4
#define E_N 0xd5
#define E_R 0xd9
#define E_Y 0xe8
#define E_0 0xf0
#define E_1 0xf1
#define E_2 0xf2
#define E_3 0xf3
#define E_4 0xf4
#define E_5 0xf5
#define E_6 0xf6
#define E_7 0xf7
#define E_8 0xf8
#define E_9 0xf9
#ifdef MAIN /* Define the full table */
/* Conversion table into EBCDIC */
unsigned char ASCII_EBCDIC[256] = {
/* This array content is created by by sending suitable
8-bit character-set file thru JNET, and analyzing
resulting NJE card images + some educated guesses.. */
0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 000 .. 007 */
0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 010 .. 017 */
0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 020 .. 027 */
0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 030 .. 037 */
0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 040 .. 047 */
0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 050 .. 057 */
0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 060 .. 067 */
0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 070 .. 077 */
0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 100 .. 107 */
0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 110 .. 117 */
0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 120 .. 127 */
0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x5f, 0x6d, /* 130 .. 137 */
0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 140 .. 147 */
0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 150 .. 157 */
0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 160 .. 167 */
0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 170 .. 177 */
0x20, 0x21, 0x22, 0x23, 0x24, 0x2a, 0x06, 0x17, /* 200 .. 207 */
0x28, 0x29, 0x15, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 210 .. 217 */
0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 220 .. 227 */
0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xe1, /* 230 .. 237 */
0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, /* 240 .. 247 */
0x49, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, /* 250 .. 257 */
0x58, 0x59, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 260 .. 267 */
0x68, 0x69, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, /* 270 .. 277 */
0x76, 0x77, 0x78, 0x80, 0x8a, 0x8b, 0x8c, 0x8d, /* 300 .. 307 */
0x8e, 0x8f, 0x90, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, /* 310 .. 317 */
0x9f, 0xa0, 0xaa, 0xab, 0xac, 0xbb, 0xae, 0xaf, /* 320 .. 327 */
0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 330 .. 337 */
0xb8, 0xb9, 0xba, 0x4a, 0xbc, 0xfc, 0xbe, 0xbf, /* 340 .. 347 */
0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xda, 0xdb, /* 350 .. 357 */
0xdc, 0xdd, 0xde, 0xdf, 0xea, 0xeb, 0xec, 0xed, /* 360 .. 367 */
0xee, 0xef, 0xfa, 0xfb, 0x6a, 0xfd, 0xfe, 0xff /* 370 .. 377 */
};
unsigned char EBCDIC_ASCII[256] = {
/* Machine inverted from ASCII_EBCDIC[] array above !
See ebcdicinv.c for the details */
0x00, 0x01, 0x02, 0x03, 0x9c, 0x09, 0x86, 0x7f, /* 000 .. 007 */
0x97, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 010 .. 017 */
0x10, 0x11, 0x12, 0x13, 0x9d, 0x8a, 0x08, 0x87, /* 020 .. 027 */
0x18, 0x19, 0x92, 0x8f, 0x1c, 0x1d, 0x1e, 0x1f, /* 030 .. 037 */
0x80, 0x81, 0x82, 0x83, 0x84, 0x0a, 0x17, 0x1b, /* 040 .. 047 */
0x88, 0x89, 0x85, 0x8b, 0x8c, 0x05, 0x06, 0x07, /* 050 .. 057 */
0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, /* 060 .. 067 */
0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a, /* 070 .. 077 */
0x20, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 100 .. 107 */
0xa7, 0xa8, 0xe3, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, /* 110 .. 117 */
0x26, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 120 .. 127 */
0xb0, 0xb1, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x5e, /* 130 .. 137 */
0x2d, 0x2f, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 140 .. 147 */
0xb8, 0xb9, 0xfc, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, /* 150 .. 157 */
0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, /* 160 .. 167 */
0xc2, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, /* 170 .. 177 */
0xc3, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 200 .. 207 */
0x68, 0x69, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, /* 210 .. 217 */
0xca, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, /* 220 .. 227 */
0x71, 0x72, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, /* 230 .. 237 */
0xd1, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, /* 240 .. 247 */
0x79, 0x7a, 0xd2, 0xd3, 0xd4, 0x5b, 0xd6, 0xd7, /* 250 .. 257 */
0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 260 .. 267 */
0xe0, 0xe1, 0xe2, 0xd5, 0xe4, 0x5d, 0xe6, 0xe7, /* 270 .. 277 */
0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* 300 .. 307 */
0x48, 0x49, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, /* 310 .. 317 */
0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, /* 320 .. 327 */
0x51, 0x52, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, /* 330 .. 337 */
0x5c, 0x9f, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, /* 340 .. 347 */
0x59, 0x5a, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, /* 350 .. 357 */
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 360 .. 367 */
0x38, 0x39, 0xfa, 0xfb, 0xe5, 0xfd, 0xfe, 0xff /* 370 .. 377 */
};
#else /* Define them as external */
extern unsigned char ASCII_EBCDIC[256], EBCDIC_ASCII[256];
#endif