[net.micro] Yet Another Modem

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