2 * Taken from the public domain ansitape program for
3 * integration into Bacula. KES - Mar 2005
6 /* Mapping of EBCDIC codes to ASCII equivalents. */
7 static char to_ascii_table[256] = {
8 '\000', '\001', '\002', '\003',
9 '\234', '\011', '\206', '\177',
10 '\227', '\215', '\216', '\013',
11 '\014', '\015', '\016', '\017',
12 '\020', '\021', '\022', '\023',
13 '\235', '\205', '\010', '\207',
14 '\030', '\031', '\222', '\217',
15 '\034', '\035', '\036', '\037',
16 '\200', '\201', '\202', '\203',
17 '\204', '\012', '\027', '\033',
18 '\210', '\211', '\212', '\213',
19 '\214', '\005', '\006', '\007',
20 '\220', '\221', '\026', '\223',
21 '\224', '\225', '\226', '\004',
22 '\230', '\231', '\232', '\233',
23 '\024', '\025', '\236', '\032',
24 '\040', '\240', '\241', '\242',
25 '\243', '\244', '\245', '\246',
26 '\247', '\250', '\133', '\056',
27 '\074', '\050', '\053', '\041',
28 '\046', '\251', '\252', '\253',
29 '\254', '\255', '\256', '\257',
30 '\260', '\261', '\135', '\044',
31 '\052', '\051', '\073', '\136',
32 '\055', '\057', '\262', '\263',
33 '\264', '\265', '\266', '\267',
34 '\270', '\271', '\174', '\054',
35 '\045', '\137', '\076', '\077',
36 '\272', '\273', '\274', '\275',
37 '\276', '\277', '\300', '\301',
38 '\302', '\140', '\072', '\043',
39 '\100', '\047', '\075', '\042',
40 '\303', '\141', '\142', '\143',
41 '\144', '\145', '\146', '\147',
42 '\150', '\151', '\304', '\305',
43 '\306', '\307', '\310', '\311',
44 '\312', '\152', '\153', '\154',
45 '\155', '\156', '\157', '\160',
46 '\161', '\162', '\313', '\314',
47 '\315', '\316', '\317', '\320',
48 '\321', '\176', '\163', '\164',
49 '\165', '\166', '\167', '\170',
50 '\171', '\172', '\322', '\323',
51 '\324', '\325', '\326', '\327',
52 '\330', '\331', '\332', '\333',
53 '\334', '\335', '\336', '\337',
54 '\340', '\341', '\342', '\343',
55 '\344', '\345', '\346', '\347',
56 '\173', '\101', '\102', '\103',
57 '\104', '\105', '\106', '\107',
58 '\110', '\111', '\350', '\351',
59 '\352', '\353', '\354', '\355',
60 '\175', '\112', '\113', '\114',
61 '\115', '\116', '\117', '\120',
62 '\121', '\122', '\356', '\357',
63 '\360', '\361', '\362', '\363',
64 '\134', '\237', '\123', '\124',
65 '\125', '\126', '\127', '\130',
66 '\131', '\132', '\364', '\365',
67 '\366', '\367', '\370', '\371',
68 '\060', '\061', '\062', '\063',
69 '\064', '\065', '\066', '\067',
70 '\070', '\071', '\372', '\373',
71 '\374', '\375', '\376', '\377'
75 /* Mapping of ASCII codes to EBCDIC equivalents. */
76 static char to_ebcdic_table[256] = {
77 '\000', '\001', '\002', '\003',
78 '\067', '\055', '\056', '\057',
79 '\026', '\005', '\045', '\013',
80 '\014', '\015', '\016', '\017',
81 '\020', '\021', '\022', '\023',
82 '\074', '\075', '\062', '\046',
83 '\030', '\031', '\077', '\047',
84 '\034', '\035', '\036', '\037',
85 '\100', '\117', '\177', '\173',
86 '\133', '\154', '\120', '\175',
87 '\115', '\135', '\134', '\116',
88 '\153', '\140', '\113', '\141',
89 '\360', '\361', '\362', '\363',
90 '\364', '\365', '\366', '\367',
91 '\370', '\371', '\172', '\136',
92 '\114', '\176', '\156', '\157',
93 '\174', '\301', '\302', '\303',
94 '\304', '\305', '\306', '\307',
95 '\310', '\311', '\321', '\322',
96 '\323', '\324', '\325', '\326',
97 '\327', '\330', '\331', '\342',
98 '\343', '\344', '\345', '\346',
99 '\347', '\350', '\351', '\112',
100 '\340', '\132', '\137', '\155',
101 '\171', '\201', '\202', '\203',
102 '\204', '\205', '\206', '\207',
103 '\210', '\211', '\221', '\222',
104 '\223', '\224', '\225', '\226',
105 '\227', '\230', '\231', '\242',
106 '\243', '\244', '\245', '\246',
107 '\247', '\250', '\251', '\300',
108 '\152', '\320', '\241', '\007',
109 '\040', '\041', '\042', '\043',
110 '\044', '\025', '\006', '\027',
111 '\050', '\051', '\052', '\053',
112 '\054', '\011', '\012', '\033',
113 '\060', '\061', '\032', '\063',
114 '\064', '\065', '\066', '\010',
115 '\070', '\071', '\072', '\073',
116 '\004', '\024', '\076', '\341',
117 '\101', '\102', '\103', '\104',
118 '\105', '\106', '\107', '\110',
119 '\111', '\121', '\122', '\123',
120 '\124', '\125', '\126', '\127',
121 '\130', '\131', '\142', '\143',
122 '\144', '\145', '\146', '\147',
123 '\150', '\151', '\160', '\161',
124 '\162', '\163', '\164', '\165',
125 '\166', '\167', '\170', '\200',
126 '\212', '\213', '\214', '\215',
127 '\216', '\217', '\220', '\232',
128 '\233', '\234', '\235', '\236',
129 '\237', '\240', '\252', '\253',
130 '\254', '\255', '\256', '\257',
131 '\260', '\261', '\262', '\263',
132 '\264', '\265', '\266', '\267',
133 '\270', '\271', '\272', '\273',
134 '\274', '\275', '\276', '\277',
135 '\312', '\313', '\314', '\315',
136 '\316', '\317', '\332', '\333',
137 '\334', '\335', '\336', '\337',
138 '\352', '\353', '\354', '\355',
139 '\356', '\357', '\372', '\373',
140 '\374', '\375', '\376', '\377'
145 * Convert from ASCII to EBCDIC
147 void ascii_to_ebcdic(char *dst, char *src, int count)
150 *dst++ = to_ebcdic_table[0377 & *src++];
156 * Convert from EBCDIC to ASCII
158 void ebcdic_to_ascii(char *dst, char *src, int count)
161 *dst++ = to_ascii_table[0377 & *src++];