|
|
1.1 root 1: /*
2: * Turn table.386 into a better form.
3: */
4: #include <misc.h>
5: #include <string.h>
6: #include <ctype.h>
7:
8: main()
9: {
10: char buf[100];
11:
12: while (NULL != gets(buf)) {
13: int x;
14: char c, *p, y[10];
15:
16: if ('#' == buf[0]) {
17: puts(buf);
18: continue;
19: }
20: sscanf(buf, "%x", &x);
21: y[0] = '\0';
22:
23: for (p = buf; c = *p; p++)
24: if (' ' == c || '\t' == c)
25: break;
26:
27: if (!x) /* General op code */
28: strcpy(y, "G");
29: else {
30: #define foo(n, c) if (n & x) strcat(y, #c);
31: /* flag one is trashed */
32: foo(0x02, w)
33: foo(0x04, d)
34: foo(0x08, m)
35: foo(0x10, a)
36: foo(0x20, p)
37: foo(0xC0, P); /* lumped */
38: /* 100 eliminated */
39: foo(0x200, t)
40: foo(0x400, i)
41: foo(0x800, r)
42: foo(0x1000, R)
43: foo(0x2000, l)
44: foo(0x4000, L)
45: foo(0x8000, X)
46: #undef foo
47: if (!y[0])
48: strcpy(y, "-");
49: }
50: printf("%-4s%s\n", y, p);
51: }
52: }
53:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.