This is USERLIB subdirectory .CPM.XMODEM Here is a Fortran version of XMODEM for CP/M file transfer using Ward Christensen protocol, runable on VAX/VMS V3.0 and higher. Current version XMODEM 5.53 June 23,1984 All timeouts implemented, supporting BATCH (multiple file transfer) and internal TEXT conversion. See XMODEMFOR.DOC and XMODEM.HLP . The files in the package are: AAAREADME.DOC This document ABSTRACT.DOC DECUS Library abstract XBUILD.COM FORTRAN and LINK the programs XMODEM.FOR Equivalent to CPM's XMODEM 5.0: binary files, with checksum or CRC, most timeouts, and with BATCH, in VAX Fortran (special I/O dependency encapsulated in two subroutines so it should be translatable to other Fortrans that can do 8-bit I/O with timeouts). works up to 9600 baud on a moderately loaded VAX 11/780 running VMS version 3.0 or higher. XMODEMFOR.DOC Another version of this document TOXMOD.FOR Converts VAX text file (variable length records with no CRLF) into CP/M compatible file for transfer by XMODEM (fixed length 128 byte records with CRLF at ends of lines). FROMXMOD.FOR Similarly converts CP/M file from the form received by XMODEM.FOR to a VAX text file. EXETOXMOD.FOR Converts .EXE file (512 byte fixed length) to 128 byte records. XMODTOEXE.FOR Converts 128 byte record file to .EXE file (512 byte records) You should probably COPY/CONTIGUOUS the .EXE file afterword so it is not too fragmented. XMODEM.HLP A VAX HELP file about the three programs. XMODEM.COM A VAX command procedure file defining XMODEM,TOXMOD,FROMXMOD, XSEND,XREC as foreign commands. QIO.DCK Obsolete include file. BATPROT.COL Describes the batch protocol MODMPROT.COL Describes the Christensen protocol (by Christensen) XMODEM.CRC Failed attempt to use LIB$CRC to calculate CRC XMODEM.BUG Known bugs in XMODEM. XMODEM.OLD An old version of XMODEM.FOR. *.EXE Coresponding executables for the *.FOR programs. The normal file format received by XMODEM is 128 byte fixed length records. These files may PRINT and TYPE reasonably, but to edit them on your VAX they must be converted to ordinary VAX text files by FROMXMOD. If you forget which files have been converted by TOXMOD or FROMXMOD, just do a DIRECTORY/FULL to see the file format on the VAX. Similarly XMODEM will only send text files reasonably using the TEXT option or if they have been converted to CP/M form by TOXMOD, otherwise the FORTRAN input statements in XMODEM will append lots of blanks to each line of text and no carriage returns will be sent. Problems: Batch mode: Long VAX filenames are truncated at 8 characters before the type. CP/M filename characters converted to "A" if invalid on VAX. Sometimes it may be advisable to DEFINE SYS$ERROR filename to get error messages that may not go into XMODEM.LOG when XMODEM crashes due to unexpected system error such as divide by zero, file open failure, etc. during a file transfer. Since XMODEM.LOG is kept in current directory, S *.* will crash XMODEM when it tries to send XMODEM.LOG since it is open for write already. A version of MODEM7 for the VAX is also available. If anyone hears of XMODEM or MODEM7 available for other MAINFRAMES I would like to hear about them. Send mail to me at the address below. History: I translated TMODEM.C ( a Unix C language version of XMODEM ) into Fortran then used the XMODEM.ASM version 5.0 8080 source code as a guide for timeouts and error handling, and translated the specific CRC algorithm used there to Fortran. Richard Conn added my CP/M - VAX text conversion routines to XMODEM.FOR . I speeded up SEND by making it do a single QIO per block. Steve Gill completed timeout implementation. The program has been in use for over 2 years here and on several other VAXes scattered across the country. It is VAX-96 in the DECUS (DEC User's Society) library. There is an old version on the DECUS Users group VAX tape for Fall 1983. Another on SIG/M library. J. James (Jim) Belonis II Computer Cost Center Manager Physics Hall FM-15 University of Washington Seattle, Washington 98195 (206)-545-8695