summaryrefslogtreecommitdiff
path: root/dviware/beebe/src/bintnx.c
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 */

    }
}