1 /*
2 * SetCb - sets the ascii values in decimal,hex or octal
3 *
4 * RCS:
5 * $Revision$
6 * $Date$
7 *
8 * Description:
9 * text
10 *
11 * Input Parameters:
12 * type identifier description
13 *
14 * text
15 *
16 * Output Parameters:
17 * type identifier description
18 *
19 * text
20 *
21 * Return Values:
22 * value description
23 *
24 * Side Effects:
25 * text
26 *
27 * Limitations and Comments:
28 * text
29 *
30 * Development History:
31 * who when why
32 * MA_Muquit@fccc.edu 19-Jun-96 first cut
33 */
34
35
36 #include "xhead.h"
37 #include "mxascii.h"
38
39
40 static char *ascii_values[132] =
41 {
42 "NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "BEL",
43 "BS ", "HT ", "LF ", "VT ", "FF ", "CR ", "SO ", "SI ",
44 "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYC", "ETB",
45 "CAN", "EM ", "SUB", "ESC", "FS ", "GS ", "RS ", "US ",
46 "SPA", "! ", "\" ", "# ", "$ ", "% ", "& ", "' ",
47 "( ", ") ", "* ", "+ ", ", ", "- ", ". ", "/ ",
48 "0 ", "1 ", "2 ", "3 ", "4 ", "5 ", "6 ", "7 ",
49 "8 ", "9 ", ": ", "; ", "< ", "= ", "> ", "? ",
50 "@ ", "A ", "B ", "C ", "D ", "E ", "F ", "G ",
51 "H ", "I ", "J ", "K ", "L ", "M ", "N ", "O ",
52 "P ", "Q ", "R ", "S ", "T ", "U ", "V ", "W ",
53 "X ", "Y ", "Z ", "[ ", "\\ ", "] ", "^ ", "_ ",
54 "` ", "a ", "b ", "c ", "d ", "e ", "f ", "g ",
55 "h ", "i ", "j ", "k ", "l ", "m ", "n ", "o ",
56 "p ", "q ", "r ", "s ", "t ", "u ", "v ", "w ",
57 "x ", "y ", "z ", "{ ", "| ", "} ", "~ ", "DEL",
58 " ", " ", " ", " "
59 };
60
61 static char *decimal_values[132] =
62 {
63 " 0"," 1"," 2"," 3"," 4"," 5"," 6"," 7",
64 " 8"," 9"," 10"," 11"," 12"," 13"," 14"," 15",
65 " 16"," 17"," 18"," 19"," 20"," 21"," 22"," 23",
66 " 24"," 25"," 26"," 27"," 28"," 29"," 30"," 31",
67 " 32"," 33"," 34"," 35"," 36"," 37"," 38"," 39",
68 " 40"," 41"," 42"," 43"," 44"," 45"," 46"," 47",
69 " 48"," 49"," 50"," 51"," 52"," 53"," 54"," 55",
70 " 56"," 57"," 58"," 59"," 60"," 61"," 62"," 63",
71 " 64"," 65"," 66"," 67"," 68"," 69"," 70"," 71",
72 " 72"," 73"," 74"," 75"," 76"," 77"," 78"," 79",
73 " 80"," 81"," 82"," 83"," 84"," 85"," 86"," 87",
74 " 88"," 89"," 90"," 91"," 92"," 93"," 94"," 95",
75 " 96"," 97"," 98"," 99"," 100"," 101"," 102"," 103",
76 " 104"," 105"," 106"," 107"," 108"," 109"," 110"," 111",
77 " 112"," 113"," 114"," 115"," 116"," 117"," 118"," 119",
78 " 120"," 121"," 122"," 123"," 124"," 125"," 126"," 127",
79 " "," "," "," "
80 };
81
82 static char *hex_values [132] =
83 {
84 "0x00","0x01","0x02","0x03","0x04","0x05","0x06","0x07",
85 "0x08","0x09","0x0A","0x0B","0x0C","0x0D","0x0E","0x0F",
86 "0x10","0x11","0x12","0x13","0x14","0x15","0x16","0x17",
87 "0x18","0x19","0x1A","0x1B","0x1C","0x1D","0x1E","0x1F",
88 "0x20","0x21","0x22","0x23","0x24","0x25","0x26","0x27",
89 "0x28","0x29","0x2A","0x2B","0x2C","0x2D","0x2E","0x2F",
90 "0x30","0x31","0x32","0x33","0x34","0x35","0x36","0x37",
91 "0x38","0x39","0x3A","0x3B","0x3C","0x3D","0x3E","0x3F",
92 "0x40","0x41","0x42","0x43","0x44","0x45","0x46","0x47",
93 "0x48","0x49","0x4A","0x4B","0x4C","0x4D","0x4E","0x4F",
94 "0x50","0x51","0x52","0x53","0x54","0x55","0x56","0x57",
95 "0x58","0x59","0x5A","0x5B","0x5C","0x5D","0x5E","0x5F",
96 "0x60","0x61","0x62","0x63","0x64","0x65","0x66","0x67",
97 "0x68","0x69","0x6A","0x6B","0x6C","0x6D","0x6E","0x6F",
98 "0x70","0x71","0x72","0x73","0x74","0x75","0x76","0x77",
99 "0x78","0x79","0x7A","0x7B","0x7C","0x7D","0x7E","0x7F",
100 " "," "," "," "
101 };
102
103 static char *oct_values[132] =
104 {
105 " 000", " 001", " 002", " 003", " 004", " 005", " 006", " 007",
106 " 010", " 011", " 012", " 013", " 014", " 015", " 016", " 017",
107 " 020", " 021", " 022", " 023", " 024", " 025", " 026", " 027",
108 " 030", " 031", " 032", " 033", " 034", " 035", " 036", " 037",
109 " 040", " 041", " 042", " 043", " 044", " 045", " 046", " 047",
110 " 050", " 051", " 052", " 053", " 054", " 055", " 056", " 057",
111 " 060", " 061", " 062", " 063", " 064", " 065", " 066", " 067",
112 " 070", " 071", " 072", " 073", " 074", " 075", " 076", " 077",
113 "0100", "0101", "0102", "0103", "0104", "0105", "0106", "0107",
114 "0110", "0111", "0112", "0113", "0114", "0115", "0116", "0117",
115 "0120", "0121", "0122", "0123", "0124", "0125", "0126", "0127",
116 "0130", "0131", "0132", "0133", "0134", "0135", "0136", "0137",
117 "0140", "0141", "0142", "0143", "0144", "0145", "0146", "0147",
118 "0150", "0151", "0152", "0153", "0154", "0155", "0156", "0157",
119 "0160", "0161", "0162", "0163", "0164", "0165", "0166", "0167",
120 "0170", "0171", "0172", "0173", "0174", "0175", "0176", "0177",
121 " ", " ", " ", " "
122 };
123
124
125
126 static char
127 **Sdecimal_columns,
128 **Sascii_columns,
129 **Shex_columns,
130 **Soct_columns;
131
132 static XmString
133 Sxmstr_dval[6],
134 Sxmstr_hval[6],
135 Sxmstr_oval[6],
136 Sxmstr_ascii[6];
137
138
MakeTable(void)139 void MakeTable (void)
140 {
141 register int
142 i,
143 j;
144
145 Sdecimal_columns = (char **)XtCalloc (6, sizeof (char *));
146 Sascii_columns = (char **)XtCalloc (6, sizeof (char *));
147 Shex_columns = (char **)XtCalloc (6, sizeof (char *));
148 Soct_columns = (char **)XtCalloc (6, sizeof (char *));
149 for (i=0; i < 6; i++)
150 {
151
152 Sdecimal_columns[i] = (char *) XtCalloc (112, sizeof (char));
153 Sascii_columns[i] = (char *) XtCalloc (112, sizeof (char));
154 Shex_columns[i] = (char *) XtCalloc (112, sizeof (char));
155 Soct_columns[i] = (char *) XtCalloc (112, sizeof (char));
156
157 for (j= (i*22); j < ((i+1) * 22); j++)
158 {
159 strcat (Sascii_columns[i], ascii_values[j]);
160 strcat (Sascii_columns[i], "\n");
161
162 strcat (Sdecimal_columns[i], decimal_values[j]);
163 strcat (Sdecimal_columns[i], "\n");
164
165 strcat (Shex_columns[i], hex_values[j]);
166 strcat (Shex_columns[i], "\n");
167
168 strcat (Soct_columns[i], oct_values[j]);
169 strcat (Soct_columns[i], "\n");
170
171 }
172 }
173
174
175 for (i=0; i < 6; i++)
176 {
177 Sxmstr_dval[i] = XmStringCreateLtoR(Sdecimal_columns[i],
178 XmSTRING_DEFAULT_CHARSET);
179 Sxmstr_hval[i] = XmStringCreateLtoR(Shex_columns[i],
180 XmSTRING_DEFAULT_CHARSET);
181 Sxmstr_oval[i] = XmStringCreateLtoR(Soct_columns[i],
182 XmSTRING_DEFAULT_CHARSET);
183
184 Sxmstr_ascii[i] = XmStringCreateLtoR(Sascii_columns[i],
185 XmSTRING_DEFAULT_CHARSET);
186 }
187 }
188
SetCb(Widget widget,XtPointer client_data,XtPointer call_data)189 void SetCb (Widget widget,XtPointer client_data,XtPointer call_data)
190 {
191 int
192 i;
193
194 int
195 type;
196
197 static int
198 first_time=0;
199
200 type=(int) client_data;
201
202 if (first_time == 0)
203 {
204 for (i=0; i < 6; i++)
205 XtVaSetValues (Gascii_labelW[i],
206 XmNlabelString,Sxmstr_ascii[i],
207 NULL);
208 first_time=1;
209 }
210
211 for (i=0; i < 3; i++)
212 {
213 XtVaSetValues(Gtoggle_menuW[i],
214 XmNset, False,
215 NULL);
216 }
217 XtVaSetValues (Gtoggle_menuW[type],
218 XmNset, True,
219 NULL);
220
221 switch (type)
222 {
223
224 case 0: /* ASCII */
225 {
226 for (i=0; i < 6; i++)
227 {
228 XtVaSetValues (Gvalue_labelW[i],
229 XmNlabelString, Sxmstr_dval[i],
230 NULL);
231 if (!first_time)
232 XtVaSetValues (Gascii_labelW[i],
233 XmNlabelString,Sxmstr_ascii[i],
234 NULL);
235 }
236 break;
237 }
238
239 case 1: /* HEX */
240 {
241 for (i=0; i < 6; i++)
242 {
243 XtVaSetValues (Gvalue_labelW[i],
244 XmNlabelString, Sxmstr_hval[i],
245 NULL);
246 if (!first_time)
247 XtVaSetValues (Gascii_labelW[i],
248 XmNlabelString,Sxmstr_ascii[i],
249 NULL);
250 }
251 break;
252 }
253
254 case 2: /* OCT */
255 {
256 for (i=0; i < 6; i++)
257 {
258 XtVaSetValues (Gvalue_labelW[i],
259 XmNlabelString, Sxmstr_oval[i],
260 NULL);
261 if (!first_time)
262 XtVaSetValues (Gascii_labelW[i],
263 XmNlabelString,Sxmstr_ascii[i],
264 NULL);
265 }
266 break;
267 }
268 }
269
270 }
271
272