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