; This portion of RXMD source generates no object code, and may be ; replaced by an empty file for assembly. It contains all credits, ; history, etc. ; ; -------------------------------------- ; This is a development from KMD08, by Irv. Hoff. This version uses ; the facilities of BYERSX, rather than those of BYE502 or BYE339, ; and is intended to allow use as a replacement for MDM, MODEM, IMP, ; MEX, etc. This development was done by C.B. Falconer. ; ; Carrier checking is now under the control of BYERSX status. Delays, ; clockrate, baudrate are supplied by BYERSX calls. This facilitates ; use in hard-wired situations and avoids all installation. For BBS ; use BYERSX again supplies all values. Security provisions are in ; force whenever RXMD is operated remotely, as indicated by the ; BYERSX "remon" status bit, and can be over-ridden by the "whlbit". ; ; The batch mode protocol, as used in KMD08, supplies an initial ; header record #0, containing the ASCIIZ file name (in lower case) ; as the initial bytes, and bytes 126 and 127 contain the file ; length, in 128 byte records, as a low byte first integer. (This ; assumes 0 based indexing). All intermediate bytes are zeroed. I ; (C.B. Falconer) intend to define further fixed fields, from byte ; 125 down, for such things as exact byte count, time/date stamps, ; etc. to enable use as a universal protocol. BYERSX already has ; provisions for time and date interfaces. ; ; The name is intended to indicate that it operates under the BYERSX ; system, and to avoid confusion with its ancestors, XMODEM and KMD. ; ; Most of the following verbiage is taken directly from KMD08. ; -------------------------------------- ; ; Introduction: ; ------------ ; This program is designed to run in conjunction with BYERSX and gets ; all port, modem and console routines directly from the main BYERSX ; program. It also supports 1k transmissions to give more efficient ; file transfers at the faster baud rates. If too many errors occur ; due to poor conditions, the advantages of 1k protocol can quickly ; vanish. The program then automatically switches back to 128 byte ; groups. This ratio is set to optimum for 1200 bps with one value ; and another for 2400 bps. Other features include progress reporting ; messages to inform the SYSOP of the protocol being used, type of ; errors encountered and the ability to abort uploads or downloads ; with two consecutive CTL-X. The disk buffer is also filled when the ; send file is opened so it is immediately ready when the receiving ; system sends its protocol character. This speeds up downloads and ; increases the reliability. Batch mode has been added, giving this ; program tremendous versatility. For downloads, the total amount of ; time for all files is accumulated and displayed prior to starting ; - if this exceeds the allowable time set by the SYSOP, the download ; is aborted. A time clock is not needed to limit these downloads, ; as the time for each file is accumulated and compared against the ; original time allowed. The batch mode displays the length of each ; file being sent or received. This feature previously has been ; available only to users of the PRO-YAM MS-DOS modem program. ; ; Discussions were conducted with Ward Christensen relative to the ; automatic 1k protocol, which he likes and has endorsed. Manual ; protocol of course is available to remain compatible with YAM ; users. Ward suggested several other things he has been using on ; his CBBS system in Chicago since the first version of his protocol ; was developed. These have been incorporated into KMD and RXMD. ; ; KMD has been developed concurrently by Irv Hoff and Wayne Masters ; and is released free of charge to the public domain. Similarly ; RXMD is released by C.B. Falconer, provided that no charges are ; made for distribution, use, etc. ; ; =================================================================== ; Current changes. Move others down. ; ; 1.0.0 85/12/12 C.B. Falconer ; Initial release. ; ; =================================================================== ; ; Acknowledgements: ; ---------------- ; KMD is based on previous programs called XMODEM. The original ; version of XMODEM was adapted for RCPM use by Keith Petersen from ; MODEM 2.0 by Ward Christensen. Numerous other programmers have ; contributed through the years prior to the work done in KMD. A few ; of those include Paul Hansknecht who wrote the CRC routines, Sigi ; Kluger who opened the way for the original overlay idea (which KMD ; and RXMD no longer need), Paul Traina and Irv Hoff and many other ; contributors whose names we have not been able to verify. Thanks ; to all who have helped to make these programs what they are today. ; ; ; Using 1k protocol: ; ----------------- ; The 1k protocol used in RXMD is automatically triggered and is ; transparent to modem programs designed to utilize this feature. ; It also supports MEX114, YAM and PRO-YAM users who need to manually ; type 'SK' to the sending host unit for 1k transmissions. (YAM users ; need to be sure to use 'RC' at their end to be in CRC mode. Earlier ; PRO-YAM users may see an error at the beginning of an upload to a ; host unit when using 1k mode due to their noise burst detector ; - this has since been corrected with current PRO-YAM versions.) ; The program also supports the IMP modem program in both the manual ; mode like those previously mentioned as well as the KMD automatic ; mode where no operator intervention is needed. ; ; RXMD and KMD send a C and a K to alert modem programs capable of ; this protocol that it can automatically accept their 1k blocks. ; This has no effect on other modem programs as they stop looking ; when they see the 'C'. The KMD automatic feature is thus trans- ; parent to all users. This can be easily modified to send only one ; character after the 1k protocol is established as the normal ; operating preference. If no transfer has commenced after about 40 ; seconds "NAK" is sent to inform the host that checksum can be ; accepted. All this is compatible with the original Christensen ; protocol to which CRC was added in 1981. One of the minor changes ; Ward has made since that time was to send the protocol character ; every two seconds instead of every 10 seconds. This initiates the ; start of the program transfer whenever the remote system is ready ; to send. After considerable testing with various modem programs, ; RXMD and KMD use a compromise and send the protocol character each ; 4 seconds until the upload is commenced. ; ; Selecting options: ; ----------------- ; RXMD has NO options, other than the buffer size to be used. All ; configuration information is ascertained from BYERSX, including ; clock speeds, baud rates, stop bits, etc. The program dynamically ; re-configures itself when operated from a remote terminal, to ; impose security restrictions. These can be over-ridden by suitable ; password protected commands. ; ; There are no external overlays or inserts required for this program ; since all support code is located in BYERSX. The function keys in ; BYERSX will also work while this program is running. ; ; NOTE: This file assumes that anybody allowed to enter the CP/M ; data area is limited only in what he can upload or download ; by the restrictions of drive and user number and the time ; he is allowed to remain on the system. Files may also be ; "tagged" and RXMD will protect those from being downloaded. ; The file types COM, PCD, SYS, and PRL are automatically ; protected against download, as are files tagged by the F1 ; or F2 bits, and those tagges as "SYS" files. Uploads of ; such file types are automatically renamed. ; ; ; ------------------------------------------------------------------- ; ; This program allows a remote or local user to transfer files (to or ; from) RCPM systems or other systems. Files may be loaded to a ; specific user area, keeping all new programs in that one area. This ; aids the SYSOP as well as the remote user. If uploading a .COM ; file, it will be changed automatically to an .OBJ file in remote ; mode. This security feature prevents intentional uploading of ; programs that could be used to alter (or erase, etc.) those already ; present. "RP" may be used to upload files to a private area for ; SYSOP use only. ; ; At present the description feature of KMD is not included, but is ; planned using the chain facilities of BYERSX. ; ; If the WHEEL bit is set (for the SYSOP, etc.) files may be uploaded ; to any specified drv/user area, their filenames are unrestricted. ; ; Programs may be uploaded to a non-public area for the private use ; of the SYSOP. (Use "RP" or "RPC" for the private area.) It also ; allows private programs to be downloaded from a special area which ; gives the SYSOP the ability to make any person a temporary priv- ; ileged user. (A private note tells the person the name of the file. ; Others would be unaware such a file existed, ensuring excellent ; security.) ; ; Individual files from a library group may be downloaded. The ; library extent (.LBR) need not be included, in which case it is ; automatically added. Using library groups permits greater utiliza- ; tion of the available disk space, plus puts all associated files ; into one file. An example is shown in the menu. ; ; Many people have contributed greatly to the present program. ; ; - Notes by Irv Hoff and Wayne Masters, modified by C.B. Falconer ; ; * * * * * Revision history, LIFO order * * * * * ;