[comp.unix.questions] How to download from BBS using Xmodem

ahernan@brahms.Berkeley.EDU (alejandro hernandez) (02/06/88)

I've got a version of Xmodem for UNIX, but I'm not sure how to go about
using it. Let me first explain how I do things on an PC, and then describe
my difficulties in accomplishing the same task on UNIX systems.

Let's say I'm calling a BBS to download some software. I would use say
Kermit or Smartcom II.  I log on the BBS and look for something to download. 
After I find the particular arc'ed file on the BBS, and ask the machine to 
send it to me, I would do a escape to my local machine---the PC---and start 
kermit or Xmodem to receive the file.  Works just fine.  

Now let's suppose I'm on a UNIX machine.  I usually dial out using tip or
kermit.  If I use tip to call the BBS and make the connection, I would also 
log on and find a file and ask the remote machine to start downloading.  Then
I'd do a shell escape in tip by typing:
		~!
I go back to my local machine, and perhaps try something like
		xmodem -rb filename
to ask xmodem to receive the file....Only it doesn't work!  I can't seem to
get Xmodem to work right.  What am I doing wrong here?  I would prefer to
use Xmodem over Kermit, as it transmits quite a bit faster, and not all BBSs 
use Kermit.


Alex
ahernan@brahms.Berkeley.EDU

wnp@dcs.UUCP (Wolf N. Paul) (02/08/88)

In article <1560@cartan.Berkeley.EDU> ahernan@brahms.Berkeley.EDU.UUCP (alejandro hernandez) writes:
>
>
>Now let's suppose I'm on a UNIX machine.  I usually dial out using tip or
>kermit.  If I use tip to call the BBS and make the connection, I would also 
>log on and find a file and ask the remote machine to start downloading.  Then
>I'd do a shell escape in tip by typing:
>		~!
>I go back to my local machine, and perhaps try something like
>		xmodem -rb filename
>to ask xmodem to receive the file....Only it doesn't work!  I can't seem to
>get Xmodem to work right.  What am I doing wrong here?  I would prefer to
>use Xmodem over Kermit, as it transmits quite a bit faster, and not all BBSs 
>use Kermit.
>

The problem is that Xmodem programs for PCs and Xmodem programs for UNIX
are written with different assumptions.

Such programs for the PC always assume that you are using your PC as
a terminal to access a host, and thus will read/write the serial port.

The same progs for UNIX generally assume that they ARE the host, and thus
try to read/write their standard in/output, i.e. your terminal.

Most of these programs however have a switch (usually -l) which lets you
specify the device your modem is attached to.

Also, some programs (I don't know about tip or your version of kermit) have
a different type of shell escape, i.e. ~$, which lets you invoke a program
and then connects that program's stdin and stdout to the line you are
communicating over.

I have a version of CU which allows this, if you are interested.

Wolf Paul
wnp@dcs.UUCP

daveb@laidbak.UUCP (Dave Burton) (02/13/88)

In article <1560@cartan.Berkeley.EDU> ahernan@brahms.Berkeley.EDU.UUCP (alejandro hernandez) writes:
|I've got a version of Xmodem for UNIX, but I'm not sure how to go about
|using it. ...
|
|Now let's suppose I'm on a UNIX machine.  I usually dial out using tip or
|kermit.  If I use tip to call the BBS and make the connection, I would also 
|log on and find a file and ask the remote machine to start downloading.  Then
|I'd do a shell escape in tip by typing:
|		~!
|I go back to my local machine, and perhaps try something like
|		xmodem -rb filename
|to ask xmodem to receive the file....Only it doesn't work!  I can't seem to
|get Xmodem to work right.  What am I doing wrong here?  ...


It depends on the Xmodem on your Unix system.
I just wrote my own Xmodem for Unix and to use it from tip I
login to the remote host, then:

$ xmodem -sc file	# -sc: send, crc
~C[Local command?]xmodem -rc /tmp/file

And there she goes!

The problem you may have is that not every version of tip(1)
is *compiled* to allow ~C (note the case!) to Connect a program
to the remote host (the 4.2BSD tip source #ifdefs this).

Basically, your problem in using ~! is that most XMODEMs use the
stdout|stderr to communicate on, and tip connects this to the
*local* host. ~C connects to the comm line.

Further, tip wants to open its comm line for exclusive use, so your
XMODEM cannot do a subsequent open; it has to use the already open
file descriptors.

-- 
--------------------"Well, it looked good when I wrote it"---------------------
 Verbal: Dave Burton                        Net: ...!ihnp4!laidbak!daveb
 V-MAIL: (312) 505-9100 x325            USSnail: 1901 N. Naper Blvd.
#include <disclaimer.h>                          Naperville, IL  60540