blob: 169e8f4117c30f27fb640499937120ab347a6676 (
plain)
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
|
/***********************************************************************
Convert a TOPS-20 file transferred in FTP "binary" mode to "tenex" mode.
In "binary" mode, we have 2 36-bit words in 9 8-bit bytes. In "tenex"
mode, we want the top 32 bits of each 36-bit group, giving 8 8-bit bytes.
Who knows what FTP did if the file had an odd number of 36-bit words.
[08-Oct-87]
***********************************************************************/
#include <stdio.h>
main()
{
int c,d;
for (;;)
{
c = getchar();
if (c == EOF)
break;
putchar(c); /* 0..7 */
c = getchar(); putchar(c); /* 8..15 */
c = getchar(); putchar(c); /* 16..23 */
c = getchar(); putchar(c); /* 24..31 */
d = getchar();
c = (d << 4);
d = getchar();
c |= 0xFF & (d >> 4);
putchar(c); /* 4..11 */
c = (d << 4);
d = getchar();
c |= 0xFF & (d >> 4);
putchar(c); /* 12..19 */
c = (d << 4);
d = getchar();
c |= 0xFF & (d >> 4);
putchar(c); /* 20..27 */
c = (d << 4);
d = getchar();
c |= 0xFF & (d >> 4);
putchar(c); /* 28..36 */
}
}
|