[comp.binaries.ibm.pc.d] binary downloads

pthiesse@jarthur.Claremont.EDU (Paul Thiessen) (02/18/89)

Hello. 
  How do you take binary-type files off of this network and into a PC? I
assume there are conversion programs necessary. What are they? I have PAK on
my PC (a new PKARC compatible program), and a UNIX system to access this
network.
  I'd appreciate any help. Thanks.

             Paul Thiessen

wws@rruxd.UUCP (W W Scott) (02/28/89)

In article <241@jarthur.Claremont.EDU>, pthiesse@jarthur.Claremont.EDU (Paul Thiessen) writes:
> Hello. 
>   How do you take binary-type files off of this network and into a PC? I
> assume there are conversion programs necessary. What are they? I have PAK on
> my PC (a new PKARC compatible program), and a UNIX system to access this
> network.
>   I'd appreciate any help. Thanks.
> 
>              Paul Thiessen

I've used CTRM to upload and download binary files between my PS/2 and UNIX.
CTRM is public domain software using the Kermit protocol.  It emulates a
HP-2621.  Anyway, I got a copy of (PC)vi from someone and decided to
experiment.  I uploaded it to UNIX and downloaded it to another file.
It worked just fine.

To get something from this newsgroup, I would try the following:
Start CTRM and hit alt-D to download.
For the filename, type
/usr/spool/netnews/comp/binaries/ibm/pc/d/<article#>

Hope this helps.

Wayne

feg@clyde.ATT.COM (Forrest Gehrke) (03/01/89)

In article <327@rruxd.UUCP>, wws@rruxd.UUCP (W W Scott) writes:
> In article <241@jarthur.Claremont.EDU>, pthiesse@jarthur.Claremont.EDU (Paul Thiessen) writes:
> > Hello. 
> >   How do you take binary-type files off of this network and into a PC? I
> > assume there are conversion programs necessary. What are they? I have PAK on
> > my PC (a new PKARC compatible program), and a UNIX system to access this
> > network.
  
> I've used CTRM to upload and download binary files between my PS/2 and UNIX.
> CTRM is public domain software using the Kermit protocol.  It emulates a
> HP-2621.  Anyway, I got a copy of (PC)vi from someone and decided to
> experiment.  I uploaded it to UNIX and downloaded it to another file.
> It worked just fine.
> Wayne

If you bothered to read Ted Roycraft's documentation you would have
found the following:
"The program [CTRM] and documentation is copywrited and is the
property of the author.  It is NOT in the public domain. It
may not be copied without the permission of the author and the
author reserves all rights.  CTRM, however, may be used by
AT&T employees at work and in their homes and may be copied
for other AT&T employees but may not be distributed outside
of AT&T.  Please refer questions concerning outside distribution
to the author"

The author, by the way, is Ted Roycraft, AT&T Bell Labs
                           Room LC 2W-D09
                           184 Liberty Corner Road
                           Warren, NJ 07060

Forrest Gehrke

skeeve@mhuxu.UUCP (Chris Riley) (03/02/89)

In article <327@rruxd.UUCP> wws@rruxd.UUCP (W W Scott) writes:
>In article <241@jarthur.Claremont.EDU>, pthiesse@jarthur.Claremont.EDU (Paul Thiessen) writes:
>> Hello. 
>>   How do you take binary-type files off of this network and into a PC? I
>> assume there are conversion programs necessary. What are they? I have PAK on
>> my PC (a new PKARC compatible program), and a UNIX system to access this
>> network.
>>   I'd appreciate any help. Thanks.
>> 
>>              Paul Thiessen
>
>I've used CTRM to upload and download binary files between my PS/2 and UNIX.
>CTRM is public domain software using the Kermit protocol.  It emulates a
>HP-2621.
>
>Wayne

CTRM is NOT public domain.  From the manual:

-- begin quote
This program and documentation is copyrighted and is the property of the
author.  It is NOT in the public domain.  It may not be copied without the
permission of the author and the author reserves all rights.  CTRM,
however, may be used by AT&T employees at work and in their homes and may
be copied for other AT&T employees but may not be distributed outside of
AT&T.  Please refer questions concerning outside distribution to the
author.
-- end quote

The author is Ted Roycraft, and his email address is att!lcuxlc!tjr.


In reference to Paul's question, I believe that Rahul posts instructions each 
month, but here you go.  Put the following line in a file, say 'combine'.

---start of combine
cat $* | sed '/^END/,/^BEGIN/d'| uudecode
---end

At the end of this posting is the source for the uuencode program.  Compile
it.  Use the save to file feature in whatever version of readnews you are
using.  Save each archive to a different name.  Now say:

$ sh combine filename

and you have the archive in the original binary format, ready to send to
the PC.  Use the file-transfer program that you usually use for sending the
file to the PC.  Kermit works well, but you will need to find out what is
available at your site.  Once you have the file on the PC, say 

c:> pkunpak arcname

and you are all set.  (you did say that you had pkunpak, right?)
Good luck!

Chris Riley


---start of uuencode.c
#ifndef lint
static char sccsid[] = "@(#)uudecode.c	5.3 (Berkeley) 4/10/85";
#endif

/*
 * uudecode [input]
 *
 * create the specified file, decoding as you go.
 * used with uuencode.
 */
#include <stdio.h>
#include <pwd.h>
#include <sys/types.h>
#include <sys/stat.h>

/* single character decode */
#define DEC(c)	(((c) - ' ') & 077)

main(argc, argv)
char **argv;
{
	FILE *in, *out;
	int mode;
	char dest[128];
	char buf[80];

	/* optional input arg */
	if (argc > 1) {
		if ((in = fopen(argv[1], "r")) == NULL) {
			perror(argv[1]);
			exit(1);
		}
		argv++; argc--;
	} else
		in = stdin;

	if (argc != 1) {
		printf("Usage: uudecode [infile]\n");
		exit(2);
	}

	/* search for header line */
	for (;;) {
		if (fgets(buf, sizeof buf, in) == NULL) {
			fprintf(stderr, "No begin line\n");
			exit(3);
		}
		if (strncmp(buf, "begin ", 6) == 0)
			break;
	}
	sscanf(buf, "begin %o %s", &mode, dest);

	/* handle ~user/file format */
	if (dest[0] == '~') {
		char *sl;
		struct passwd *getpwnam();
		char *index();
		struct passwd *user;
		char dnbuf[100];

		sl = index(dest, '/');
		if (sl == NULL) {
			fprintf(stderr, "Illegal ~user\n");
			exit(3);
		}
		*sl++ = 0;
		user = getpwnam(dest+1);
		if (user == NULL) {
			fprintf(stderr, "No such user as %s\n", dest);
			exit(4);
		}
		strcpy(dnbuf, user->pw_dir);
		strcat(dnbuf, "/");
		strcat(dnbuf, sl);
		strcpy(dest, dnbuf);
	}

	/* create output file */
	out = fopen(dest, "w");
	if (out == NULL) {
		perror(dest);
		exit(4);
	}
	chmod(dest, mode);

	decode(in, out);

	if (fgets(buf, sizeof buf, in) == NULL || strcmp(buf, "end\n")) {
		fprintf(stderr, "No end line\n");
		exit(5);
	}
	exit(0);
}

/*
 * copy from in to out, decoding as you go along.
 */
decode(in, out)
FILE *in;
FILE *out;
{
	char buf[80];
	char *bp;
	int n;

	for (;;) {
		/* for each input line */
		if (fgets(buf, sizeof buf, in) == NULL) {
			printf("Short file\n");
			exit(10);
		}
		n = DEC(buf[0]);
		if (n <= 0)
			break;

		bp = &buf[1];
		while (n > 0) {
			outdec(bp, out, n);
			bp += 4;
			n -= 3;
		}
	}
}

/*
 * output a group of 3 bytes (4 input characters).
 * the input chars are pointed to by p, they are to
 * be output to file f.  n is used to tell us not to
 * output all of them at the end of the file.
 */
outdec(p, f, n)
char *p;
FILE *f;
{
	int c1, c2, c3;

	c1 = DEC(*p) << 2 | DEC(p[1]) >> 4;
	c2 = DEC(p[1]) << 4 | DEC(p[2]) >> 2;
	c3 = DEC(p[2]) << 6 | DEC(p[3]);
	if (n >= 1)
		putc(c1, f);
	if (n >= 2)
		putc(c2, f);
	if (n >= 3)
		putc(c3, f);
}


/* fr: like read but stdio */
int
fr(fd, buf, cnt)
FILE *fd;
char *buf;
int cnt;
{
	int c, i;

	for (i=0; i<cnt; i++) {
		c = getc(fd);
		if (c == EOF)
			return(i);
		buf[i] = c;
	}
	return (cnt);
}

/*
 * Return the ptr in sp at which the character c appears;
 * NULL if not found
 */

#define	NULL	0

char *
index(sp, c)
register char *sp, c;
{
	do {
		if (*sp == c)
			return(sp);
	} while (*sp++);
	return(NULL);
}
---end of uuencode.c


-- 
Chris Riley                         My mind isn't always in the gutter
                                    -- sometimes it comes out to feed.
chris.riley@attbl.att.com
att!attbl!chris.riley     What I think has no bearing on what AT&T thinks.

marc@rna.UUCP (Marc Johnson) (03/02/89)

In article <241@jarthur.Claremont.EDU>, pthiesse@jarthur.Claremont.EDU (Paul Thiessen) writes:
> Hello. 
>   How do you take binary-type files off of this network and into a PC? I
> assume there are conversion programs necessary. What are they? I have PAK on
> my PC (a new PKARC compatible program), and a UNIX system to access this
> network.
>   I'd appreciate any help. Thanks.
> 
>              Paul Thiessen

If you're speaking of files encoded in "uuencode" form, you'll need to run
them through "uudecode" first.  This should be available on most UNIX systems.
(Uuencode converts binary bytes to an ASCII representation of their hex values.)
This usually yields a .ARC file (binary) which you can download to your
PC using any communications program that uses the Kermit protocol.  I believe
a version of Kermit is available on many UNIX systems.  On the PC side, you'll
also need a Kermit-speaking program, like PC-Kermit itself, or ProComm.
Then, once you get the goodies to the PC, you'll have to un-ARC them using
any of the myriad archivers (ARC512, PKARC, PKPAK, PKZIP, etc.).

By the way, uudecode is finicky about the files' format--strip out any excess
text before the "BEGIN---CUT HERE" and the "END---CUT HERE" lines, including
those lines themselves.

Good luck.

marc

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
= Marc Johnson			    BITNET:   rna!marc@rockvax.bitnet         =
= Rockefeller Univ. Neurobiology    UUCP:     ...cmcl2!rna!marc               =
= New York City                     INTERNET: marc%rna@rocky2.rockefeller.edu =
=                                             (129.85.2.1)                    =
=                                                                             =
= "Gimme the beat boys and free my soul, I wanna get lost in your rock & roll =
=                           ...and drift away"                                =
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

jboggs@inco.UUCP (John Boggs) (03/04/89)

Marc,

I've been running into problems using kermit to transfer .arc files both
to and from my SUN system and PC.  I use server mode on unix kermit and
now believe I have to set file type to binary on the unix side.  Is there
a corresponding set command I have to issue on the PC for binary transfer?
I'm using MS-KERMIT on the PC.

-- 
John Boggs

McDonnell Douglas Electronic Systems Company
McLean, Virginia, USA