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. This directory is served out by BITNET and by Internet MAIL. You can MAIL commands in the body of an Internet MAIL message to VMSSERV@PHAST.PHYS.WASHINGTON.EDU or BITNET SEND a command to VMSSERV@UWAPHAST. Try HELP or DIR. Current version XMODEM 5.70 Nov 2, 1989 Error status returned to DCL on exit, opens outputs SHARED. Faster CRC in MACRO, fewer QIO's, all timeouts implemented, supporting BATCH (multiple file transfer) and internal TEXT conversion 'on the fly' without temporary files. See XMODEMFOR.DOC and XMODEM.HLP . See ULIB:[MACINTOSH.MACX] for macintosh version to use with MacTerminal This has been proven to work in SPAWNed and LIB$SPAWNed subprocesses. The normal file format received by XMODEM is 128 byte fixed length records (unless the T option is used for automatic text file conversion). 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. Converted to faster CRC from Byte Magazine Nov.1987 P.339 by Bela Lubkin & Jerry LeVan (translated to Macro by Gordon Davisson). The program has been in use for many years here and on several other VAXes scattered across the country. An old version is VAX-96 in the DECUS (DEC User's Society) library. Various versions are on various DECUS Symposium VAX tapes. Especially Fall. A very old version 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 BELONIS@UWAPHAST via BITNET belonis@phast.phys.washington.edu via Internet Description of of the files in this directory. AAAREADME.DOC This document ABSTRACT.DOC DECUS Library abstract BATPROT.COL This is a description of the batch protocol for XMODEM. BINXMOD.FOR Converts arbitrary record size binary files to 128 byte records. CRC.C Two fast versions of CRC calc routine in "C" language. CRC.FOR Obsolete CRC routines in FORTRAN replaced by TABLE.MAR . EXETOXMOD.FOR Converts .EXE file (512 byte fixed length) to 128 byte records. FROMXMOD.FOR Similarly converts CP/M file from the form received by XMODEM.FOR to a VAX text file. MODMPROT.COL Describes the Christensen protocol (by Christensen) QIO.DCK Obsolete include file. TMODEM.C A Unix C version of XMODEM (basis for FORTRAN version) TOXMOD.EXE This is the executable for the TOXMOD program. 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). VMODEM.DIR A version of XMODEM off a DECUS tape (no CRC). (part of VAXNET) XBUILD.COM FORTRAN and LINK the programs XMODEM.$PACKAGE list of files for use by VMSSERV@UWAPHAST.BITNET and VMSSERV@PHAST.PHYS.WASHINGTON.EDU XMODEM.BUG Known bugs in XMODEM. XMODEM.COM A VAX command procedure file defining XMODEM,TOXMOD,FROMXMOD, XSEND,XREC as foreign commands. XMODEM.CRC Failed attempt to use LIB$CRC to calculate CRC failure is related to "big-endian" Z80 vs. "little-endian" VAX according to Gordon Davisson XMODEM.EX A transferable version of XMODEM. (128 byte blocks.) XMODEM.EXE This is the executable for the XMODEM program. XMODEM.FOR Equivalent to CPM's XMODEM 5.0: binary files, TABLE.MAR with checksum or CRC, most timeouts, and with BATCH, in VAX MACRO & 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. See CRC.FOR too. XMODEM.HLP HELP file about the three programs. XMODEM.OLD Old version of XMODEM.FOR. XMODEMF.DOC mail message about new xmodem text features from POTTER XMODEMFOR.DOC Another version of this document 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. XMODTOSCR.FOR converts 128 byte record file to a FORTH screen file for PDP-11 compatability mode FORTH. XMODTODVI.FOR converts TEX .DVI files from 128 byte record file to 512 byte like VMS TEX likes and pads last record with DF hex . [.*] subdirectories containing other people's versions of XMODEM some based on mine, others not. I typically have not yet integrated these versions capabilities into mine, and have not necessarily tested them. DOC*MO*.TXT documents from Compuserve about XMODEM & YMODEM on Compuserve XMODEM_7_BIT.DIF differences to make XMODEM receive files successfully even if 8-bit connection not available. Sending is still a problem unless the remote computer program has been modified similarly.