[net.micro] PC File Transfer via Networks

HAROLD%UGA.BITNET@WISCVM.WISC.EDU (Harold C. Pritchett) (07/29/86)

Transferring PC Binary Files Over Networks

When transferring PC files over mainframe networks (BITNET, ARPANET,
etc.)  the usual technique is to up-load a file containing text, send it
via the network to another node where it is then down loaded to another
PC and compiled, interpreted, run, etc.  This works fine for Source
files of programs written in compiled languages, or for BASIC programs
saved as ASCII files.  It does not work well (if at all) for files
containing BINARY data such as COM files, EXE files, or ARC (compressed
source) files.

This note will describe one method of transferring such files between PC
users via their mainframe accounts.

The binary file is converted to a file containing only printable
characters on the sending PC.  It is then uploaded to the mainframe,
transmitted via the network, downloaded at the destination to another
PC, and then converted back to the original binary form.  The programs
to do the conversions are already available on the network.

Obtain the files MSBPCT.BAS, MSBPCT.BOO, and MSBMKB.BOO from one of the
KERMIT file servers.  (Instructions on how to do this, in the form of
the file "AANETW HLP" available from the KERMIT file servers, will be
attached at the end of this note.)  The file MSBPCT.BAS is a BASIC
program saved as an ASCII file.  The name of the input file (in the
version I have) is hard coded in the program.  This name is
MSKERMIT.BOO.  The name of the output file is stored in the BOO files
(BOOT Files).  Rename MSBPCT.BOO to MSKERMIT.BOO and run the program
MSBPCT.BAS.  It will create a file named MSBPCT.EXE.  Rename
MSKERMIT.BOO back to MSBPCT.BOO.  Now, run the program you just created,
MSBPCT.EXE. Type the command

     MSBPCT MSBMKB.BOO

This will run much faster, and create the file MSBMKB.EXE.  These are
the two programs which you need.  (The source for these programs
(written in C) is also available from the KERMIT file servers.

To send the file DOIT.COM over the network, type the command:

     MSBMKB DOIT.COM DOIT.BOO

on your PC.  (If you have a hard disk, you should be in the
sub-directory where the file currently exists, otherwise the path will
become a part of the name and might cause problems when the file is
converted back.)

Now, upload the file DOIT.BOO using whatever system you have available.
It contains only printing Characters in the range character zero to
character underscore.  When the file is loaded, send it to it's
destination over the network.  The receiver can then down load it to his
PC and issue the command:

   MSBPCT DOIT.BOO

on his PC.  The output file name will be taken from the file and will be
the same as it had on the original system.

                                     Harold Pritchett <HAROLD@UGA.BITNET>

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

AANETW.HLP                                                     (5 Dec 85)

                Accessing Kermit Files Via Computer Network


This file describes how to get Kermit files over computer networks,
including BITNET, CCNET (a DECnet network), the Internet (Arpanet and
the networks connected to it), plus various dialup accesses including
UUCP.  You should also read AAFILES.HLP if you need more complete
descriptions of the Kermit files themselves.


* BITNET from the Columbia University CUVMA System:

BITNET is a network of IBM mainframes, mostly at universities, connected
with leased phone lines, using IBM RSCS protocols (VAX VMS and Unix
systems and other systems that can imitate these protocols are also on
BITNET).  BITNET covers North America and Europe.  Information about
joining BITNET may be obtained from EDUCOM Networking Activities, P.O.
Box 364, Princeton, NJ (USA) 08540, Phone 609-734-1878.

KERMSRV at CUVMA is a file server for the BITNET user community which
accepts commands via messages or spool files, and sends the requested
KERMIT files over the network.  Most spool file formats are accepted
including those used by SENDFILE, NOTE, PUNCH, PRINT, CARD DUMP, or DISK
DUMP commands.

To learn how obtain Kermit files from the Columbia IBM mainframes via
BITNET, type the following command to your BITNET host:

        SMSG RSCS MSG CUVMA KERMSRV HELP

This is VM/CMS format -- TSO, J-NET, UREP, or other BITNET systems will
probably have different formats; consult your system support people for
details.  VAX/VMS J-Net uses syntax something like this:

  $ SEN/REM CUVMA KERMSRV HELP

The Kermit files available from BITNET may be some days or weeks behind
the announcements that appear in Info-Kermit (see below).

Here is a brief summary of KERMSRV operation; see the HELP message for
greater detail:

The following file request commands are accepted: SEND, PUNCH, PRINT,
DISK, and CARD.  These commands expect a file name or "DIR" or "?" as an
operand.  The DIR operand accepts an optional file name also.  File
names may contain * or % wildcard characters, but the filename portion
may not consist of those characters only.

Note that KERMSRV will always respond with some message; if you get a
response please do not resubmit your request.  If your request was
received as a spool file, error messages are sent in a spool file, also.

The NEWS command returns news about latest features and changes in
KERMSRV.

* BITNET from the University of Toledo VAX/VMS system UOFT02:

The Kermit file server KERMSRV is not the same one as the one running at
Columbia -- this is a VAX, and CUVMA is an IBM mainframe.  The
collection is maintained by Brian Nelson, author of PDP-11 Kermit, mail
to BRIAN@UOFT02 on BITNET.

from VM/CMS:    CP SMSG RSCS MSG UOFT02 KERMSRV DIR
                CP SMSG RSCS MSG UOFT02 KERMSRV SEND K11*.*

from VMS Jnet:  $ SEN/REM UOFT02 KERMSRV SEND K11*.*


* Internet from the Columbia University CU20B System:

"Internet" means the Arpanet and any network connected to it using
TCP/IP protocols, including parts of CSnet, many campus local networks,
etc.  Access to the Columbia Internet Kermit distribution is through
FTP, the Internet File Transfer Program; consult the FTP manual for your
own system in order to learn how to use your FTP program.

To get Kermit files via the Internet, use FTP (not TELNET), connect to
host CU20B (Internet Host number [128.59.32.128]), login as user
ANONYMOUS, password KERMIT, and use the GET or MULTIPLE GET commands to
retrieve the desired files from the area KER:, e.g. "GET
KER:AAAREAD.ME", "MULTIPLE GET KER:CK*.*".  Network users may consult
the file KER:AAVNEW.HLP from time to time to see what new versions of
Kermit have been installed recently.  Sites whose FTP programs do not
support the DIRECTORY or MULTIPLE GET commands may GET the file
AAFILES.DIR from the desired Kermit area (see below) to obtain an
up-to-date directory listing.

After logging in anonymously, you may also attempt to set your default
path to the desired Kermit directory, KER: or K2: (see below), using
FTP's CWD or CD command.  If you are prompted for a password, provide a
null one; if a message advises you to send a password, ignore the
message.  Since our network software is in a state of transition, this
operation may or may not work.  The following discussion assumes it does
not work; if it does, you can follow the same instructions, but leave
off the prefix KER: or K2: from any file specifications.

Internet access to CU20B is currently unrestricted, but if sufficiently
large numbers of anonymous FTP logins occur regularly during prime
(eastern) time hours to interfere with our own user community, some
restrictions on anonymous logins will have to be imposed.

Those accessing CU20B via network should note the existence of several
Kermit file areas:

  KER:  - Microcomputer, PC, workstation Kermit implementations, plus
            Kermit documentation of a general nature.
  K2:   - Mainframe and minicomputer Kermit implementations.
  KB:   - True binary (executable) files for selected implementations.
  KT:   - Tools -- cross assemblers and linkers, etc.
  KE:   - "Extra", old, redundant, or esoteric Kermit implementations.

KER: corresponds to Tape A, K2: corresponds to tape B.

These areas are "logical device names", which should be used rather than
physical DEC-20 DEVICE:<DIRECTORY> names, which may change from time to
time as our systems are rearranged.  The logical name KER: includes all
the others (K2:, KB:, etc) in its search path, so to obtain a single
file you should prefix its name by KER:.

When getting either single or multiple files, and your own system is a
DEC-20, then it is also sufficient to prefix the file specification by
KER:.

When getting multiple files from CU20B's FTP server from non-DEC-20
systems, you should first change working directory (CWD or CD) to the
area containing the files you want to get, either KER: or K2:.  If you
don't, then each file will be sent back to you with its fully qualified
name which in some cases may be longer than the longest permissible
filename on your system, which in turn can cause files whose names
differ only in the last few characters to overwrite each other as they
arrive.

Alphabetic case is insignificant in DEC-20 file names (lowercase is
mapped to upper).  The dot separating the file name and file type is
significant; the name and type are separate fields.

File groups may be specified in MULTIPLE GET commands using the
following "wildcard" notation:

 *  matches any string of 0 or more characters in the current field
 %  matches any single character in the current position

For instance, KER:CK*.* matches all files whose names start with CK.
KER:CK*.% matches all files whose names start with CK and whose types
are exactly one character long (like KER:CKUCMD.C).

Each implementation of Kermit has a prefix.  All files relating to that
implementation have names that start with that prefix.  Since the dot is
significant in DEC-20 file names, the way to refer to all the files in a
specific implementation is "KER:xx*.*", where xx is the prefix.

A few cautionary words about DEC-20 logical names: the search path is
followed only so long as files are not found that match the given file
specification.  This can cause some confusion; for instance, the command
"DIRECTORY KER:" will only list the files in the primary (Tape A) Kermit
directory, because when no file specification is given, "*.*" is
assumed, and all files in the primary directory match "*.*", so
subsequent directories are not searched.  Similarly, "KER:C*.*" will not
search subsequent directories if the primary directory contains any
files that start with "C".  Note that "KER:*.DOC" (whose intention might
be to refer to all the Kermit documentation files) would only find .DOC
files in the primary Kermit directory.

Care has been taken to ensure that files are arranged so that if they
are referred to by prefix, they will be found in the KER: search path.
For instance, the C-Kermit files, having the prefix "CK" will be found
if referred to as "KER:CK*.*", even though they are really in K2:.
However, this principle applies only to the two principal directories,
KER: and K2:.  It does not apply to KB:, which is used to separate
binary files from "printable" files.  Therefore, KER:MS*.* will find all
of the printable MS-DOS Kermit files, but will not find the .EXE files,
which are in KB:, and must be referred to separately as KB:MS*.*.

Before you attempt to get binary files from the KB: or KT: directories
with FTP, you should know something about the way the DEC-20 stores
these files:

.. Native DEC-10 or DEC-20 programs are stored in 36-bit binary format,
. Native DEC-10 or DEC-20 programs are stored in 36-bit binary format,
  and will be transferred correctly to other DEC-10 or -20 systems
  without doing anything special.  They probably can't be transferred to
  other kinds of systems.

.. "Foreign" 8-bit binary files are stored 4 8-bit bytes left justified
. "Foreign" 8-bit binary files are stored 4 8-bit bytes left justified
  within the 36-bit word.  You can get these files from another DEC-10
  or -20 without doing anything special, but to get them from some other
  kind of system, you have to give FTP the command "TYPE L 8" or "TENEX"
  first.

If you are originating your FTP requests from a DEC-20 or TENEX system,
no special precautions are necessary regarding file types or name
conversion.  If you are coming from another kind of system, you will
probably find that the files you obtain are stored with names contrary
to your system's naming conventions.  For instance, if you tell Unix FTP
to "mget ck*.*", you may find the files stored in your directory with
names like

        PS:<KERMIT>CKAAAA.HLP.2

when you really want stored with names like

        ckaaaa.hlp

A special program is available to Unix sites for doing the appropriate
file name conversions, called xxu.c ("get ker:xxu.c").  The recommended
procedure for FTP'ing files to a Unix system is to make a new directory
for them, cd to it, then get the files, including ker:xxu.c, then build
xxu.c (it should run under any version of Unix), then do "xxu *" to
convert the names.  See the xxu.c source comments for details.


* CCnet:

CCnet is a DECnet network of cooperating universities.  Kermit files may
be accessed using NFT to CU20B::KER:xxx, where xxx is the name of the
file or file group you want to get.  Some sites (regarded as "secure")
may specify /USER:ANONYMOUS, but most sites will have to supply a valid
CU20B user ID and password.  If your system is on CCnet and you cannot
get anonymous NFT access to CU20B, you'll have to ask your system
manager to get the files for you.  Read the Internet section above about
device, directory, and wildcard conventions.


* Mail:

There is a network mailing list for Kermit information; it is available
to users of BITNET and the Internet and most networks that are connected
to them, inclusing CSnet, Usenet, Mailnet, CCnet, and others.  To get on
the mailing list, send mail to

        Info-Kermit-Request@CU20B

CU20B is a mail host on both Internet and BITNET, and is reachable from
CSnet, Mailnet, Usenet, the DEC Engineering network, and other networks
via explicit host routing, e.g.

        Info-Kermit-Request%CU20B.ARPA@CSnet-Relay  (CSnet)
        Info-Kermit-Request%CU20B.ARPA@WISCVM       (BITnet)

The domain-style address for CU20B is CU20B.COLUMBIA.EDU.

If your system won't let you use long names or names with dashes in mail
addresses, then just mail to KERMIT@CU20B (or %CU20B.whatever).

* Dialup:

Several dialup Kermit collections are available.

1. Digital Equipment Corporation, Marlboro, MA.
   Dial 617-467-7437 or -1120.  It's a DEC-20.
   To login, type "LOGIN LCG.KERMIT KERMIT"
   The Kermit files are in the area KERMIT:, e.g. KERMIT:AAAREAD.ME.
   Just type "kermit" to run the Kermit program.

2. The University of Toledo allows limited dialup access to its UOFT02
   VAX/VMS system:

        (419) 537-4411
        Service class  VX785A
        User: KERMIT
        Password: KERMIT

        Source and hex files are in KER:, binaries are in KERBIN:

3. Oklahoma State University:

UUCP and Kermit access to the complete Kermit distribution is available from
the Department of Computing and Information Sciences, Oklahoma State
University, Stillwater, Oklahoma.

The files from TAPE A are in /usr/spool/uucppublic/kermit-a/*

The files from TAPE B are in /usr/spool/uucppublic/kermit-b/*


- - UUCP -

You need to set up "okstate" as a site in your "L.sys" UUCP dialing file
using the information listed below.  You can then issue the following
commands on your system:

   uucp okstate!~uucp/kermit-a/aaaread.me /usr/spool/uucppublic

   (this example will retrieve a general information file about the
    entire Kermit Distribution.  DO THIS FIRST!)


   uucp okstate!~uucp/kermit-b/ck\* /usr/spool/uucppublic

   (this example will retrieve the current version of C-Kermit)

"/usr/spool/uucppublic" was chosen as the destination on your system
since the destination must be WIDE OPEN (drwxrwxrwx) to everyone.  You
should not remove files from your uucppublic until the entire transfer
is complete including any redials that are necessary.  If you do remove
some files, our system may retransmit them, resulting in a higher phone
bill for you.

There are 2 files available that contain information about the entire
distribution.  We recommend that you retrieve these files first.  They
are "aaaread.me" which explains the file name conventions used, and
"aafiles.dir" which is a complete listing (by name) of all files in the
in each kermit directory.  These files will enable you to choose the
right files the first time to save those high dollar phone bills.

- ---- UUCP Login information ----

Site Name    :  okstate
Phone number :  (405) 624-6953  (one line only)
Login name   :  uucpker
Password     :  thefrog
Hours        :  24 hours per day, 7 days a week
Problem      :  okstate!uucp-support  (UUCP)
  reports    :  uucp-support%okstate@csnet-relay  (ARPA)

The phone number is for 300/1200 baud (bell compatible).

The following is a sample L.sys line (\r is a carriage return).  You
might want to put a time restriction on Any. ("Any2100-900" in Illinois)

okstate Any ACU 1200 405-624-6953 "" \r ogin: uucpker word: thefrog

Just a few notes on how to best retrieve parts of the Kermit
distribution using UUCP...

  -  Install the proper L.sys entry and test it using the debugging
     option of UUCICO (-x).  Repeat this step until you successfully
     complete a "no work" connection, this will verify that your L.sys
     entry is correct and will minimize frazzled nerves.

  -  Retrieve the files `aaaread.me' and `aafiles.dir' with the
     following commands:

uucp -c -d okstate!~uucp/kermit-a/aaaread.me  /usr/spool/uucppublic
uucp -c -d okstate!~uucp/kermit-a/aafiles.dir /usr/spool/uucppublic/files.dir.a
uucp -c -d okstate!~uucp/kermit-b/aafiles.dir /usr/spool/uucppublic/files.dir.b

     You will have to escape the exclamation point and the tilde if you
     are using the C shell (i.e. ...okstate\!\~uucp/kermit-a...).

  -  Choose the versions of Kermit that you wish to transfer and issue
     the proper UUCP command.  Some systems don't seem to like
     wildcards, but in any case the wildcards will have to be escaped
     from your shell. The following command would retrieve the files
     relating to C-Kermit:

uucp -c -d okstate!~uucp/kermit-b/ck\* /usr/spool/uucppublic

     PLEASE NOTE THE USE OF /usr/spool/uucppublic!  Unless you *really*
     understand how UUCP's protections work you should not change this!
     A number of people have queued >100 files and had their systems
     refuse to store them in out of the way places.  This results in
     wasted phone time!

KERMIT SERVER ACCESS TO THE KERMIT DISTRIBUTION AREA.

Okstate also provides access to the KERMIT distribution via a KERMIT
Server.  The number is the same as above for the uucpker login, so the
line may be busy quite a bit.  This server is a specialized server with
controlled access.  At present, the server is only allowed access to the
kermit directories on our machine.  By issuing the command  "REMOTE
HELP"  from your KERMIT, you will see a description of the commands that
the server will recognize, and a line like

- --> /usr/spool/uucppublic/kermit-a: r
      /usr/spool/uucppublic/kermit-b: r

This means that the server can read files from the indicated directory.
Other possibilities exist, there is w-Write access, d-Delete access, and
x-Execute access.  At any rate, you can only read from the kermit-*
directories at this time, and these are the only directories that you
may access.

KERMIT login   :   kermsrv
Password       :   piggy
Parity         :   even
Data path      :   7 bit
Available      :   24 hours/day, 7 days a week

When the login is completed, the server will start, and you should
escape back to your local KERMIT to issue further commands.  If the
server remains idle for a period of time around 10 minutes, it will be
stopped.  While the server is receiving data other than NAK packets, it
will continue to run.

The best place to start after logging on is "REMOTE HELP", followed
closely by the desired "REMOTE DIR" commands.  If you don't include an
argument to REMOTE DIR, you should be prepared for more than 600 lines
of output.  It is usually better to read the AAAREAD.ME file (using
REMOTE TYPE perhaps) and then do the DIR with some kind of wildcard
(like "REMOTE DIR ck*").

If your kermit does not support remote commands, then you can get files
from either directory by preceding the file name with the proper path,
as in:

        get /usr/spool/uucp/kermit-b/ck*

  -  If you are having problems connecting to our system PLEASE send
     mail to {cbosgd, ea, ihnp4, isucs1, mcvax,
     uokvax}!okstate!uucp-support

  -  Kind words also make my day!

Mark Vasoll
Department of Computing and Information Sciences
Oklahoma State University

UUCP:  {cbosgd, ea, ihnp4, isucs1, mcvax, pesnta, uokvax}!okstate!vasoll
ARPA:  vasoll%okstate.csnet@csnet-relay.arpa