Commit | Line | Data |
---|---|---|
196ba1fc PH |
1 | /* i7094_dat.h: IBM 7094 data conversion tables\r |
2 | \r | |
3 | Copyright (c) 2003-2006, Robert M. Supnik\r | |
4 | \r | |
5 | Permission is hereby granted, free of charge, to any person obtaining a\r | |
6 | copy of this software and associated documentation files (the "Software"),\r | |
7 | to deal in the Software without restriction, including without limitation\r | |
8 | the rights to use, copy, modify, merge, publish, distribute, sublicense,\r | |
9 | and/or sell copies of the Software, and to permit persons to whom the\r | |
10 | Software is furnished to do so, subject to the following conditions:\r | |
11 | \r | |
12 | The above copyright notice and this permission notice shall be included in\r | |
13 | all copies or substantial portions of the Software.\r | |
14 | \r | |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r | |
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r | |
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\r | |
18 | ROBERT M SUPNIK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r | |
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r | |
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r | |
21 | \r | |
22 | Except as contained in this notice, the name of Robert M Supnik shall not be\r | |
23 | used in advertising or otherwise to promote the sale, use or other dealings\r | |
24 | in this Software without prior written authorization from Robert M Supnik.\r | |
25 | */\r | |
26 | \r | |
27 | /* Nine-code to ASCII conversion */\r | |
28 | \r | |
29 | const char nine_to_ascii_a[64] = {\r | |
30 | '0', '1', '2', '3', '4', '5', '6', '7',\r | |
31 | '8', '9', '^', '#', '@', ':', '>', '{',\r | |
32 | '&', 'A', 'B', 'C', 'D', 'E', 'F', 'G',\r | |
33 | 'H', 'I', '?', '.', ')', '[', '<', '}',\r | |
34 | '-', 'J', 'K', 'L', 'M', 'N', 'O', 'P',\r | |
35 | 'Q', 'R', '!', '$', '*', ']', ';', '_',\r | |
36 | ' ', '/', 'S', 'T', 'U', 'V', 'W', 'X',\r | |
37 | 'Y', 'Z', '|', ',', '%', '~', '\\', '"',\r | |
38 | };\r | |
39 | \r | |
40 | const char nine_to_ascii_h[64] = {\r | |
41 | '0', '1', '2', '3', '4', '5', '6', '7',\r | |
42 | '8', '9', '^', '=', '\'', ':', '>', '{',\r | |
43 | '+', 'A', 'B', 'C', 'D', 'E', 'F', 'G',\r | |
44 | 'H', 'I', '?', '.', ')', '[', '<', '}',\r | |
45 | '-', 'J', 'K', 'L', 'M', 'N', 'O', 'P',\r | |
46 | 'Q', 'R', '!', '$', '*', ']', ';', '_',\r | |
47 | ' ', '/', 'S', 'T', 'U', 'V', 'W', 'X',\r | |
48 | 'Y', 'Z', '|', ',', '(', '~', '\\', '"',\r | |
49 | };\r | |
50 | \r | |
51 | /* ASCII to nine-code conversion */\r | |
52 | \r | |
53 | const char ascii_to_nine[128] = {\r | |
54 | 060, 060, 060, 060, 060, 060, 060, 060, /* 000 - 037 */\r | |
55 | 060, 060, 060, 060, 060, 060, 060, 060,\r | |
56 | 060, 060, 060, 060, 060, 060, 060, 060,\r | |
57 | 060, 060, 060, 060, 060, 060, 060, 060,\r | |
58 | 060, 052, 077, 013, 053, 074, 020, 014, /* 040 - 077 */\r | |
59 | 074, 034, 054, 020, 073, 040, 033, 061,\r | |
60 | 000, 001, 002, 003, 004, 005, 006, 007,\r | |
61 | 010, 011, 015, 056, 036, 013, 016, 032,\r | |
62 | 014, 021, 022, 023, 024, 025, 026, 027, /* 100 - 137 */\r | |
63 | 030, 031, 041, 042, 043, 044, 045, 046,\r | |
64 | 047, 050, 051, 062, 063, 064, 065, 066,\r | |
65 | 067, 070, 071, 035, 076, 055, 012, 057,\r | |
66 | 060, 021, 022, 023, 024, 025, 026, 027, /* 140 - 177 */\r | |
67 | 030, 031, 041, 042, 043, 044, 045, 046,\r | |
68 | 047, 050, 051, 062, 063, 064, 065, 066,\r | |
69 | 067, 070, 071, 017, 072, 037, 075, 060\r | |
70 | };\r | |
71 | \r | |
72 | /* ASCII to BCD conversion */\r | |
73 | \r | |
74 | const char ascii_to_bcd[128] = {\r | |
75 | 000, 000, 000, 000, 000, 000, 000, 000, /* 000 - 037 */\r | |
76 | 000, 000, 000, 000, 000, 000, 000, 000,\r | |
77 | 000, 000, 000, 000, 000, 000, 000, 000,\r | |
78 | 000, 000, 000, 000, 000, 000, 000, 000,\r | |
79 | 000, 052, 037, 013, 053, 074, 060, 014, /* 040 - 077 */\r | |
80 | 034, 074, 054, 060, 033, 040, 073, 021,\r | |
81 | 020, 001, 002, 003, 004, 005, 006, 007,\r | |
82 | 010, 011, 015, 056, 076, 013, 016, 072,\r | |
83 | 014, 061, 062, 063, 064, 065, 066, 067, /* 100 - 137 */\r | |
84 | 070, 071, 041, 042, 043, 044, 045, 046,\r | |
85 | 047, 050, 051, 022, 023, 024, 025, 026,\r | |
86 | 027, 030, 031, 075, 036, 055, 012, 057,\r | |
87 | 000, 061, 062, 063, 064, 065, 066, 067, /* 140 - 177 */\r | |
88 | 070, 071, 041, 042, 043, 044, 045, 046,\r | |
89 | 047, 050, 051, 022, 023, 024, 025, 026,\r | |
90 | 027, 030, 031, 017, 032, 077, 035, 000\r | |
91 | };\r | |
92 | \r | |
93 | /* BCD to ASCII conversion */\r | |
94 | \r | |
95 | const char bcd_to_ascii_a[64] = {\r | |
96 | ' ', '1', '2', '3', '4', '5', '6', '7',\r | |
97 | '8', '9', '^', '#', '@', ':', '>', '{',\r | |
98 | '0', '/', 'S', 'T', 'U', 'V', 'W', 'X',\r | |
99 | 'Y', 'Z', '|', ',', '%', '~', '\\', '"',\r | |
100 | '-', 'J', 'K', 'L', 'M', 'N', 'O', 'P',\r | |
101 | 'Q', 'R', '!', '$', '*', ']', ';', '_',\r | |
102 | '&', 'A', 'B', 'C', 'D', 'E', 'F', 'G',\r | |
103 | 'H', 'I', '?', '.', ')', '[', '<', '}'\r | |
104 | };\r | |
105 | \r | |
106 | const char bcd_to_ascii_h[64] = {\r | |
107 | ' ', '1', '2', '3', '4', '5', '6', '7',\r | |
108 | '8', '9', '^', '=', '\'', ':', '>', '{',\r | |
109 | '0', '/', 'S', 'T', 'U', 'V', 'W', 'X',\r | |
110 | 'Y', 'Z', '|', ',', '(', '~', '\\', '"',\r | |
111 | '-', 'J', 'K', 'L', 'M', 'N', 'O', 'P',\r | |
112 | 'Q', 'R', '!', '$', '*', ']', ';', '_',\r | |
113 | '+', 'A', 'B', 'C', 'D', 'E', 'F', 'G',\r | |
114 | 'H', 'I', '?', '.', ')', '[', '<', '}'\r | |
115 | };\r | |
116 | \r | |
117 | /* BCD to ASCII 48 character print chains */\r | |
118 | \r | |
119 | const char bcd_to_pca[64] = {\r | |
120 | ' ', '1', '2', '3', '4', '5', '6', '7',\r | |
121 | '8', '9', ' ', '#', '@', ' ', ' ', ' ',\r | |
122 | '0', '/', 'S', 'T', 'U', 'V', 'W', 'X',\r | |
123 | 'Y', 'Z', ' ', ',', '%', ' ', ' ', ' ',\r | |
124 | '-', 'J', 'K', 'L', 'M', 'N', 'O', 'P',\r | |
125 | 'Q', 'R', '-', '$', '*', ' ', ' ', ' ',\r | |
126 | '&', 'A', 'B', 'C', 'D', 'E', 'F', 'G',\r | |
127 | 'H', 'I', '&', '.', ')', ' ', ' ', ' '\r | |
128 | };\r | |
129 | \r | |
130 | const char bcd_to_pch[64] = {\r | |
131 | ' ', '1', '2', '3', '4', '5', '6', '7',\r | |
132 | '8', '9', ' ', '=', '\'', ' ', ' ', ' ',\r | |
133 | '0', '/', 'S', 'T', 'U', 'V', 'W', 'X',\r | |
134 | 'Y', 'Z', ' ', ',', '(', ' ', ' ', ' ',\r | |
135 | '-', 'J', 'K', 'L', 'M', 'N', 'O', 'P',\r | |
136 | 'Q', 'R', '-', '$', '*', ' ', ' ', ' ',\r | |
137 | '&', 'A', 'B', 'C', 'D', 'E', 'F', 'G',\r | |
138 | 'H', 'I', '&', '.', ')', ' ', ' ', ' '\r | |
139 | };\r | |
140 | \r | |
141 | /* BCD to column binary conversion */\r | |
142 | \r | |
143 | const uint32 bcd_to_colbin[64] = {\r | |
144 | 00000, 00400, 00200, 00100, 00040, 00020, 00010, 00004,\r | |
145 | 00002, 00001, 00202, 00102, 00042, 00022, 00012, 00006,\r | |
146 | 01000, 01400, 01200, 01100, 01040, 01020, 01010, 01004,\r | |
147 | 01002, 01001, 01202, 01102, 01042, 01022, 01012, 01006,\r | |
148 | 02000, 02400, 02200, 02100, 02040, 02020, 02010, 02004,\r | |
149 | 02002, 02001, 02202, 02102, 02042, 02022, 02012, 02006,\r | |
150 | 04000, 04400, 04200, 04100, 04040, 04020, 04010, 04004,\r | |
151 | 04002, 04001, 04202, 04102, 04042, 04022, 04012, 04006\r | |
152 | };\r |