kfl (05/03/83)
WHAT IS YAM Page 1
1. THE HISTORY OF YAM
The following is an edited (by me) history of the YAM and
MODEM programs. The original is from a bulletin board (in
Australia) and has been put in the SIG/M CP/M public domain
library. The New York Amateur Computer Club (NYACC) pub-
lished the original version in their public domain catalog
(re: SIG/M volume 87).
YAM and MODEM are interactive communications programs
designed for CP/M and RCPM systems, but have been extended
somewhat to other systems.
2. INTRODUCTION
What is required for interactive communication with a RCPM
system is a utility which will allow ASCII communications
for login and RCPM command instigation and will also allow
handshaking (or protocol) file transfers in both directions
without having to return to the operating system command
level.
In the USA, RCPM systems have been on line for several years
and several programs which fulfill the above requirements
have been developed. These have been developed in two
streams.
The first stream is the series of programs which go under
the generic title of "MODEM". These programs all stem from
a program written by Ward Christensen in Chicago for the
very first RCPM system called CBBS (actually the very first
microcomputer bulletin board system in the world). The
MODEM programs are all written in 8080 assembly code and are
in the public domain.
The second stream of programs is a series of programs which
go under the name of YAM ("Y"et "A"nother "M"odem program).
These programs stem from attempts to rewrite the MODEM pro-
grams into the "C" high level language. The YAM programs
use the same protocols as the MODEM programs and they will
"talk" to each other.
3. THE YAM FAMILY OF PROGRAMS
YAM is written in a modern, high level language, "C". It
was written with the idea that it should be transportable to
non-CP/M environments and is the only choice if you are not
running an 8080/Z80 processor.
WHAT IS YAM Page 2
The program is written in a modular manner and all the UART
dependent routines are contained in a single module. Some
other hardware dependent information (such as port
addresses, etc.) is contained in header files. This makes
it easy to support multiple versions of YAM from substan-
tially the same set of files.
You will need a BDS "C" compiler, version 1.41 or later to
compile YAM. If you have a version earlier than 1.46 (or
perhaps 1.45a), you may also need the MAC assembler if you
want to modify the two assembler modules YAM8 and YAM9. In
the normal course of events, you will not need to touch
these modules, the preassembled CRL files for these two
modules are available for downloading from many RCPM sys-
tems. Versions of the BDS "C" compiler from 1.46 onward
allow the use of ASM to produce CRL files, but you would
then need to modify the YAM8/9.ASM modules to suit the new
method.
If you are comfortable with the "C" language, you should
definitely use YAM instead of MODEM. Even if you are not
familiar with "C", it is worth the effort learning, to be
able to compile YAM. YAM is a much more flexible utility
than MODEM and is typical of the numerous high quality pub-
lic domain utilities available in "C".
4. THE YAM/MODEM HANDSHAKE PROTOCOL
Both YAM and MODEM use the same handshake protocol for
transferring single files and can work with each other.
They use a different protocol in the "batch" mode, and will
NOT work with each other in this mode. Both YAM and MODEM
use the same CRC check when running in that mode and will
work with each other for single file transfers.
5. OTHER PROGRAMS WHICH WILL WORK WITH YAM/MODEM
Listed below are other programs which will work with YAM or
MODEM7.
5.1 RCPMLINK.COM for the Osborne 1 Computer
This program uses the "Christensen" protocols and is claimed
to be fully compatible with MODEM. RCPMLINK is a commercial
program based on MODEM.
WHAT IS YAM Page 3
5.2 CMODEM.C
This program is from the "CNODE" RCPM system and is written
in BDS "C". It is an enhanced version of YAMBOOT (the YAM
stub used to download the rest of YAM) and will send files
as well as receive them, but is really only a very minimal
communications utility.
5.3 UMODEM27
This program is written in "C" for UNIX systems. It imple-
ments the "Christensen" protocols and should be compatible
with YAM and MODEM7. This program is large, with lots of
options, but may not work on all versions of UNIX.
5.4 TMODEM
TMODEM was announced on ARPANET by Andrew Scott Beals
<SJORBG.ANDY%MIT-OZ@mit-mc.arpa> and is designed to upload
and download files (including binaries) between UNIX and
CP/M. This program is supposed to work on both V7 and BSD
4.1 UNIX.
5.5 MITE
Not to be confused with HITE. This CP/M program is from
Mycroft Labs and is supposed to implement the "Christensen"
protocols. I don't know anything else about it.
6. XYAM AND XMODEM
XYAM and XMODEM are special versions of YAM and MODEM. They
are designed for use on RCPM systems and as such have some
special features necessary in that sort of environment.
Generally, these features are designed to make them easy for
the remote user to control (i.e. more messages) and to
prevent "dangerous" things from happening to the RCPM sys-
tem.
On any RCPM system there are certain system files which are
not available for transfer (for a variety of reasons). The
YAM/XMODEM programs can detect these files and will not
transfer them.
edited and posted by:
Ken Lee, mhuxt!kfl