Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 61 13.3 Kermit 13.3.1 ZCOMM Kermit Capabilities At a Glance Local operation..................Yes Remote operation.................Yes Transfers text files.............Yes Transfers binary files...........Yes Wildcard send....................Yes Filename collision avoidance.....Yes Can time out.....................Yes 8th-bit prefixing................Yes 8 bit serial data................Yes Sliding Windows..................Yes Long Packets.....................Yes Repeat count prefixing...........Yes Alternate block checks...........Yes Terminal emulation...............Multiple Communication settings...........Yes Transmit BREAK...................Yes IBM mainframe communication......Yes Transaction logging..............Yes Act as server....................no Talk to server...................Yes Advanced commands for servers....Yes Handle file attributes...........no Programmable reset string........Yes Kermit operates with a wide range of computer systems, including those whose restrictive terminal interfaces prevent XMODEM transfers. Kermit uses an encoding technique called quoting to represent control characters and (if necessary) parity bits with standard printable characters. It is one of the few asynchronous error correcting protocols that work properly with half duplex IBM front ends. Because of the overhead from character quoting, Kermit is less efficient (slower) than ZMODEM. Kermit can transfer one or more files per command, preserving the exact file length. EXAMPLE: kermit sb file1 file2 EXAMPLE: kermit rb 13.3.2 Incompatible Kermit Dialects When sending files with the Kermit Protocol, ZCOMM uses all 8 bits for the transfer unless a 7 bit parity mode (e.g., ena -7e) is used, the kermit 7 numeric parameter is non zero, or the other program requests 8th bit qouting. If ZCOMM is using a 7 bit parity mode (such as ena -7m), ZCOMM requests 8th bit (C) 1990 Omen Tech Inc Chapter 13 Protocol File Transfers Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 62 quoting unless the kermit 8 numeric parameter is non zero. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Both programs must use the same parity for Kermit file transfers to succeed. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Kermit does not provide an automatic means of forcing both the sender and receiver to use the same dialect. Files cannot be transferred if the two programs disagree on parity handling, Such failures are quite commonplace. A common symptom is a transfer that starts up normally but always fails at the same block. Setting appropriate parity corrects these Kermit failures. ZCOMM's Kermit AutoDownload(TM) (enabled with the K mode) allows the term function to sense the beginning of a Kermit file download, make the proper determination on whether to use 8 bit serial data, and execute the file download without user intervention. 13.3.3 Kermit Performance Enhancements Super-Kermit (Kermit with Sliding Windows) transmits multiple packets before waiting for a response, increasing throughput with timesharing systems and networks. ZCOMM uses sliding windows and CRC error detection if the other machine's Kermit supports them. ZCOMM also supports long packets for increased throughput with suitable systems, including many that do not support sliding windows. ZCOMM allows Kermit long packets up to 1000 characters on DOS, up to 2048 on 32 bit Unix systems. The maximum send packet length is set by the kermit l numeric parameter. ZCOMM will ask for sliding windows if this is set to 94 or less. EXAMPLE: k pl94 The maximum receive packet length is set by the kermit L numeric parameter. ZCOMM will ask for sliding windows if this is set to 94 or less. EXAMPLE: k pL94 With the default values for the kermit l and kermit L parameters, ZCOMM will choose long packets over sliding windows when a choice is possible. ZCOMM supports 12 bit Kermit checksums and 16 bit Kermit CRC for professional error detection performance. ZCOMM uses the most reliable Kermit error correction available. Shorter checksums may be (C) 1990 Omen Tech Inc Chapter 13 Protocol File Transfers Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 63 forced by changing the kermit b numeric parameter. 13.3.4 Accessing Kermit Servers The commands to start up a Kermit server vary from system to system. Unix C-Kermit can be started in server mode with kermit -ix given to Unix or VMS. When the Kermit server is active, the ZCOMM get, send, and remote ... commands may be used. The ZCOMM finish command causes the remote Kermit server to exit to its operating system. 13.3.5 Kermit Caveats Some versions of Kermit translate files as they are sent, by default! Typical modifications include CR/LF to NL transformations and CPMEOF stripping. Before transferring binary files, such editing must be disabled with SET FILE TYPE BINARY or similar commands given to the other program. The demonstration in Chapter 10 includes several Kermit server access and file transfer commands. If the Kermit protocol doesn't work with IBM mainframe communications, incorrect ASCII/EBCDIC translate tables may be the problem. Some mainframe "front ends" require special characters or a break signal to recover from transmission errors ("line hits"). The kermreset string parameter (q.v.) may be programmed with the required sequence. SEE ALSO: kermreset string parameter When downloading files from some versions of Kermit, best results may sometimes be obtained by starting ZCOMM's kermit receive before typing the carriage return that starts the sender on the remote. If the other program includes an adjustable initial delay, you can save time by setting it to zero. SEE ALSO: kermit d numeric parameter SEE ALSO: K mode (Kermit AutoDownload(TM)) (C) 1990 Omen Tech Inc Chapter 13 Protocol File Transfers Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 64 13.4 Uploading Files to Unix Systems Files may be uploaded to Unix systems conveniently and quickly with ZMODEM. Unix flavors of Professional-YAM support the full ZMODEM- 90(TM) feature set including Intelligent Crash Recovery(TM) and selective transfers with the rz command, a hard link to the /usr/bin/yam program. The undos program may be used to remove carriage returns files uploaded to Unix machines. When accessed over a network, some systems require additional control characters to be escaped. The sz command e option may be used to escape all control characters. SEE ALSO: e option Individual control characters can be escaped with the zmtxesc string parameter. SEE ALSO: zmtxesc string parameter If the Unix system is operating with 7 bits, the sender's zmodem d parameter may have to be increased to allow the rz program time to change Unix to 8 bits for the transfer. SEE ALSO: zmodem d numeric parameter Pro-YAM may not be available on a particular system. The rz program supports a subset of ZCOMM's ZMODEM features.[6] On Unix systems with Professional-YAM installed, the rzsz source files and man pages are installed in the /usr/src/command/rzsz directory. If rz is not installed on the Unix system, unpack the rzsz.zoo file on your MSDOS system with: looz x rzsz.zoo given from the DOS prompt. Next, the command source zupl.t calls the zupl.t script to upload the bootstrap file minirb.c, compile it, and use it to upload the remainder of the source files. After the rest of the files have been uploaded, compile rz.c and sz.c using the directions given in the README file and in the C source files. The manual "pages" rz.1 and sz.1 may be formatted with nroff commands such as nroff -Tlp -man rz.1 sz.1 (C) 1990 Omen Tech Inc Chapter 13 Protocol File Transfers Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 65 If the target system does not have a compiler, it may be possible to compile minirb.c locally, strip the executable file for minumum size, uuencode the executable, and transfer the result to the target system. Once minirb is operational on the target system, a uuencoded copy of rz can be uploaded.[7] This requires the target system to have the uudecode program, and a compiler that supports the target system. 13.5 Downloading Files from Unix Systems To download files from Unix(TM) systems, use the Unix sz command to send the desired files to ZCOMM. To Unix keyboard: sz file ... ZCOMM's ZMODEM AutoDownload(TM) takes care of the rest for you, saving unnecessary keystrokes. If one or more of the files already exists on the destination disk, use sz -y file ... instead, to replace the old copies on your computer. Another useful option sends only the files that exist on both computers (Y), and furthermore sends only those that are newer (n): sz -Yn file ... When files are long and transmission slow, you can save time by squeezing them first with sq. Source for a Unix compatible version of sq is available in xsq.cq.[8] The zoo program, available for DOS and Unix, may also be used to compress file(s) before transmission. Omen Technology products support ZMODEM compression with the Z option. All Omen Technology products support compression by Run Length Encoding (RLE). Unix flavors of Professional-YAM also support LZW compression. Unix source files normally do not contain carriage returns used by CP/M and DOS. Some CP/M or DOS programs, such as C compilers, do not require carriage returns in the source files. Others, such as the Microsoft Macro Assembler, become quite confused by such files, although such files fully meet the requirements of the ASCII standard. Carriage Returns may be added before downloading with the todos or tocpm programs. Carriage returns may be added during the transfer with the sz a option. Carriage Returns may be added after the transfer by some program editors, including uEMACS. (Other editors, such as DOS edlin may crash trying to edit such files.) Short files __________ 7. As written, minirb cannot transfer binary files. 8. /usr/src/cmd/xsq.c on Unix systems. (C) 1990 Omen Tech Inc Chapter 13 Protocol File Transfers Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 66 (less than 64kb) may be converted using ZCOMM's read and create commands to pass the data through ZCOMM's capture buffer. Text files may also be downloaded using the capture buffer if sz has not been installed on the Unix machine. If a file or set of files are to be transported between two Unix systems, it may be helpful to place them in a tar or cpio archive (and possibly squeeze the archive) before transmission. This procedure will preserve the Unix file modes and modification times, and bypass pathname restrictions imposed by DOS. As with rz, Unix Professional-YAM is linked to sz to support the full ZMODEM-90(TM) feature set. Otherwise the separate Unix sz program may be obtained as described in the previous subchapter. 13.6 VAX/VMS File Transfers Most of the comments made above about Unix file transfers apply to VMS as well. Automatic uploads to VMS may require setting the zmodem d (delay) numeric parameter to gice time for the VMS rz program to properly initialize. SEE ALSO: zmodem d numeric parameter EXAMPLE: zmodem pd15 13.6.1 Version 4 rz/sz Omen provides VMS flavors of version 4 rz and sz precompiled in rzsz.tlb, a VMS "text library". Version 4 rz supports most ZMODEM-90 features including Crash Recovery, compression, and MobyTurbo. Binary uploads write files with a default VMS 512 byte fixed length record format. EXAMPLE: sz biglib.tlb Sending to VMS with the i option selects the VMS Stream_LF record format. Stream_LF preserves the exact file length and data contents when read by C programs. EXAMPLE: sz -i vmsemacs.exe Sending to VMS with the I option causes the VMS receiver to use variable length binary records. VMS Kermit-32 and some other programs understand this record format. Text files uploaded with the a option are written in variable length (C) 1990 Omen Tech Inc Chapter 13 Protocol File Transfers Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 67 records with CR carriage control. EXAMPLE: sz -a emacs*.c Version 4 VMS sz supports standard VMS wild card and directory recursion syntax. EXAMPLE: $ sz -qa [*...]*.prn sends all accessible .prn files on the system in ASCII mode. The VMS sz q option suppresses the initial tally of the number of files and their lengths. This tally can take some time when a large number of files and directories are invloved. The f option may be added to send directory names as well. If you use Kermit to upload the rzsz.tlb file to VMS, command the receiving Kermit program to SET FILE FIXED. Otherwise Kermit will garble the data. 13.7 GEnie File Transfers The General Electric Consumer Information Service service (GEnie) uses ZMODEM-90(TM) for efficient downloads. GEnie's ZMODEM server selects ZMODEM RLE Compression or MobyTurbo(TM) for optimum download speed on each file. GEnie uses a large network to provide callers with local access numbers. This requires technical tradeoffs to control data flow in the network. If you are using an MNP modem, download speeds can be improved by increasing GEnie's ZMODEM window size. EXAMPLE: genie24 speed 4800 249-8365/mnp set adlopts "W16384" Startup on Genie ZMODEM AutoDownloads can be speeded up by disabling Security Verification. EXAMPLE: ena -yZ :: Disable ZMODEM Security verification The sx file.exe command is used for XMODEM-CRC uploads to GEnie. When uploading with XMODEM-CRC, Wait for GEnie's "READY FOR INPUT, start your XMODEM upload." message, and then wait for the XMODEM-CRC C to appear before issuing the sx command. Issuing the sx command before the C appears may corrupt the uploaded file. A number of GEnie access scripts are provided in scripts.zoo with filenames starting with ge. The main GEnie login script is provided in phones2.t witin scripts.zoo. (C) 1990 Omen Tech Inc Chapter 13 Protocol File Transfers Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 68 13.8 CompuServe File Transfers ZCOMM supports CompuServe Quick-B and the faster Extended Quick-B (B+) file transfer protocols. As this is being written, these protocols are being revised. Please check the newest.me file for possible changes. B+ Protocol is used by the CompuServe Timesharing Service through the CompuServe, Tymnet, and Telenet networks. B+ Protocol file transfers are initiated by the CompuServe computer. The B+ Protocol file transfer protocol is well supported by this timesharing service. Under typical conditions, the B+ Protocol saves 35 per cent or more in file transmission time and connect charges compared to XMODEM protocol transfers. The c or C mode must be set with ena -c or ena -C to allow the B+ protocol to seize control and transfer files. The adlopts string parameter allows the y and v file transfer options to be specified for CIS-B transfers. The w numeric parameter controls the block length used by the CompuServe B+ Protocol. A longer length increases throughput, but may overload some networks, resulting in excessive retransmissions or failed transfers. With the new Extended Quick-B protocol, the maximum block length is 1024 data bytes. A value of 0 (the default) allows the Compuserve computer to control the block length, up to 1024 with Extended Quick-B. A negative value controls the upload block length but still allows Compuserve to control the download block length (1024 with Extended Quick B). Uploads to Compuserve using longer block lengths are especially sensitive to poor flow control, especially when error correcting modems (MNP, etc.) are used. If B protocol uploads fail or require excessive retransmissions, correct the flow control arrangements, disable the modem's error correction, or try a smaller upload block size. The data contents of successfully transferred file(s) are not affected by this parameter. Some networks may garble data when Quick-B's streaming causes ZCOMM to respond to incoming data concurrently with incoming data. The o numeric parameter can be set to 0 to disable streaming (send-ahead). It is essential to use the same interface speed to the modem as the modem's transmission rate when uploading files with B+ protocol. If the modem buffers any characters, ZCOMM's response to CompuServe's flow control will be too slow to prevent loss of data. (C) 1990 Omen Tech Inc Chapter 13 Protocol File Transfers Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 69 The CompuServe B+ Protocol controls all file transfer operations (except permission to overwrite files) from the timesharing system. Waiting for long files to download can be boring. You can start the transfer and walk away from the computer, but CompuServe will stay connected for 15 minute$ after the transfer is finished if you don't come back when the download finishes. This expense can be avoided by typing ALT-Q once the protocol transfer has started. ALT-Q tells ZCOMM to disconnect as soon as the protocol transfer is completed, stopping the connect charges. An alternative method is to control the transfers with a script, using either ejryam or the less sophisticated cissig and dow.t scripts included with the software distribution. When "browsing" through CompuServe's software "downloading section" libraries, the kcisdl.t script file and ZCOMM allow you to download a file with a single keystroke: F3. Installation instructions are provided in that file. 13.9 BIX File Transfers BIX (Byte Information Exchange) supports ZMODEM-90 and Kermit file transfers. The Tymnet phone number in the bix telephone directory entry should be changed for your calling area. Other scripts are provided to handle BIX mail and conferences. When setting up a new BIX account, give the command call bix,new to force a login to the BIX new account program. Be sure to select ZMODEM downloads and Kermit (sliding windows) uploads with the BIX "OPTIONS" menu choice. Set the Zcomm adlopts string variable to m or mr to enable MobyTurbo and ZMODEM Crash Recovery. BIX's transfer time predictions are about 40 per cent too pessimistic for ZMODEM transfers. A number of BIX scripts are included in SCRIPTS.ZOO. 13.10 User Exit Processing The onclosetx and oncloserx string parameters provide a facility to perform user defined file related functions ("user exits") immediately after each file is closed, while the protocol is still active. Wild card filename expansionss are not allowed in this context. The oncloserx string parameter may be used to perform user commands or call a script once for each file received with a file transfer protocol. (C) 1990 Omen Tech Inc Chapter 13 Protocol File Transfers Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 70 EXAMPLE: set oncloserx @crc %rname; obey "!%mv %rname /tmp" When each file is received, the crc command calculates and displays a CRC for the file. Then the !% command calls the mv program to move the file just received to the /tmp directory. The "%" in the "!%" command causes the rest of the command string to be processed for string substitutions. The onclosetx string parameter may be used to perform user commands or call a script once for each file sent with a file transfer protocol. Wild card file name expansions may not be used in onclosetx. EXAMPLE: The following causes each successfully sent file to be moved to the /done directory. set onclosetx @if !d? obey "!%mv %rname /done" SEE ALSO: rname, tname, drive, pwd string parameters, ?, d? test conditions User exits will cause protocol timeouts if their execution takes too long. Since both Zcomm and the remote machine are still executing file transfer protocols when user exits are called, user exits can not use the serial port. (C) 1990 Omen Tech Inc Chapter 13 Message Transfers Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 71 14. MESSAGE TRANSFERS 14.1 Downloading Messages ZCOMM is flexible capturing output from other systems. The trick is to make the remote send the information without too much embellishment. When downloading files without a file transfer protocol, set the timesharing system to send tabs as tab characters without expanding them to spaces. Turn off fill characters. These extra characters waste time and money and ZCOMM doesn't need them. ZCOMM's s and S modes can be used to strip control characters and escape sequences from the capture download. EXAMPLE: t -s file If the remote system responds to XOFF and XON, E mode may be enabled to allow Error Containment(TM) to reduce the number of characters garbled by "line hits". EXAMPLE: t -E7e file1 uses Error Containment to download file1 from a system using 7 bits even parity. Error Containment works best when even or odd parity is available. SEE ALSO: E, j, S, s modes 14.1.1 XON/XOFF Files of arbitrary length may be transferred if the remote supports flow control with the ASCII XOFF and XON control characters. Output from most timesharing services may be captured to a file using this method. To download a file with XON/XOFF flow control: t file1 14.1.2 DC2/DC4 (^R/^T) Some bulletin boards support file downloads by issuing a DC2 to open a capture buffer, sending the file, and terminating the capture with DC4. ZCOMM does not support this "protocol" directly. The review t and b commands can be used to strip excess characters from the circular buffer before writing the file to disk. This "protocol" can be implemented with Turbodial(TM) script commands: EXAMPLE: pat 1c "\022" "@kill; create capture.fil" pat 2c "\024" "close" (C) 1990 Omen Tech Inc Chapter 14 Message Transfers Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 72 14.1.3 Data Dump Sometimes no flow control is available. The fget * command allows ZCOMM to accept a continuous stream of data at a maximum data rate determined by the hardware and software environment. With a hard disk, excellent results have been obtained with a 4.77 mHz PC accepting graphics dumps at 9600 bps. EXAMPLE: fget file1 At slower speeds or with a fast computer, the term function j mode* may be used for nonstop file capture. EXAMPLE: t -j file1 The fget command does not provide a progress display. While this allows the fastest possible data capture (38400 bps on a suitable computer), sometimes there is no handy way to monitor the flow of data. The term function I (super-image) mode may be used to capture a binary file, provided CRT emulation is disabled with a display dumb command or by enabling v mode. EXAMPLE: display dumb; t -Ij file1 The fax directory entry in PHONES2.T gives another example of how ZCOMM's data capture modes may be used to capture binary data. 14.2 Uploading Messages It is often possible to upload files using the f command with one or more modes (such as w or p, possibly in combination with t). Message uploads are more reliable if you keyboard enab flow before connecting through Telenet. If using Tymnet, type ^R^X just before the host computer name to enable flow control with XOFF and XON. Check with your network's documentation for further details or updates to this information. It often helps to use "half duplex" ( h mode) with the computer echo disabled when uploading files to the computer. This saves the computer from wasting precious time echoing characters. Another tactic is to avoid uncorrected message transfers during peak hours. Telephone usage peaks during midday with a resulting increase in noise induced line hits. Timesharing computers and communications networks are more likely to drop characters due to buffer overloading during high traffic periods as well. (C) 1990 Omen Tech Inc Chapter 14 Message Transfers Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 73 14.2.1 Paced Some systems accept characters only at a certain rate, a slow speed for each character and possibly a pause at the end of each line. Depending on the particular system, data transfer may have to pause briefly at the end of the line,[1] or wait for a particular character to signify readiness to accept the next line. There may be an additional delay after that[2] before the remote is able to accept more data. EXAMPLE: f -p file1 uploads file1 with a wait for the linefeed echo at the end of each transmitted line. EXAMPLE: pg63; f -p file1 Sets the prompt character to decimal 63 ("?") and sends the file with a wait for "?" after each transmitted line. As with the fpute command, the remote system must be commanded to open and close the file. 14.2.2 Throttle Another method of slowing message uploads is the throttle, activated by t mode. Throttle artificially slows Zcomm's character transmission to allow more time for the receiving system to digest each character. The speed of transmission with t mode is controlled by the t numeric parameter. EXAMPLE: f -t secret.msg Really slow systems may require both throttle and pacing to send data efficiently without loss. EXAMPLE: f -tp turkey.slo 14.2.3 Uploading to IBM Mainframes Text files can be uploaded to IBM mainframes using the P (upper case) mode. When the P mode is activated, ZCOMM will wait for an XON (^Q) after sending each line. In this special mode, ZCOMM will not time out waiting for the XON, no matter how long it takes for the IBM front end to send it. If, for some reason, the front end fails to send the XON, (or if it is garbled in transmission), Ctrl-Q may be keyboarded. EXAMPLE: f -P file1 __________ 1. Controlled by the p numeric parameter 2. Controlled by the q numeric parameter (C) 1990 Omen Tech Inc Chapter 14 Message Transfers Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 74 SEE ALSO: P mode, Kermit protocol 14.2.4 Uploading Messages to Bulletin Boards The greatest file transfer challenge is to upload a file to a bulletin board message system running on a tiny microcomputer. Bulletin board message systems have a rich variety of operating sequences and timing dependencies matched only by the proliferation of incompatible dialects of Basic and Pascal. Message upload from files to bulletin boards reduces connect time and $welling of the Phone Bill. Unattended message transfer saves the user's time, especially if the board is difficult to access. The t, p and w modes and the g, p, t, and q numeric parameters allow disk files to be uploaded to such systems. The basic program cbbsck.bas may be used (perhaps with modifications) to check that a message file does not violate the restrictions of the message system being uploaded to. A C version is also available. EXAMPLE: f -pt file1 14.2.5 Uploading to CompuServe SIGS A file may be uploaded to a CompuServe SIG (Special Interest Group) editor with p mode and the g numeric parameter set to colon. When the file has been transferred, hit ENTER to send a blank line to terminate message entry. EXAMPLE: set eolstr "\r."; pp1000; pg58; f -p FILE Is useful for uploading a prepared message to Compuserve's bulletin boards. This setting for eolstr inserts a carriage return and period after each line to prevent the CompuServe software from reformatting the message. EXAMPLE: pp1000, pg58, and f -p FILE transmits FILE waiting for the prompt character ":" before sending each line after the first. An alternative is to set the SIG "FIL" option, which calls the EDIT editor. The cisupl script file referenced by phones2.t uses the SIG "FIL" editor option. Compuserve nodes often drop characters when files are uploaded at full speed in full duplex. This can be avoided by using h mode (local echo) and turning off Compuserve's echo. (C) 1990 Omen Tech Inc Chapter 14 Message Transfers Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 75 14.3 Fpute: Echoplex Uploads Text files can often be uploaded reasonably efficiently using the fpute command.* Fpute waits for an echo to each character sent to the remote. Fpute provides modest throughput without loss of data for systems with terminal ports designed for keyboard data entry. The maximum speed with fpute is limited to about 1/3 the normal character rate by echo delays. There is no error correction with fpute, but character by character handshaking prevents lost data caused by buffer overflow. If possible, TABS should be set to echo as TAB characters and not as spaces. Before the fpute command is given, the remote system must be instructed to enter data from the "terminal" to a file. After the file has been sent, the remote system must be instructed to close the file. EXAMPLE: fpute file1 (C) 1990 Omen Tech Inc Chapter 14 Flow Control Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 76 15. FLOW CONTROL All of us must sometimes tell people to "slow down" lest they overload us with information faster than we can write it down. "Wait!" is a Flow Control Signal for the English language. When the receiving ZCOMM complains about Garbled Data Subpacket or Line Status Register 01 you should suspect a flow control problem. When buffered modems, timesharing systems, networks, or computers of differing speeds are involved, a machine readable "Wait!" signal is required. Flow control is sometimes necessary to display long messages without skipping over the good parts. If you see pieces of text missing from messages but don't see the usual funny characters caused by line noise, ypu have a flow control problem. File transfers that use long blocks or streaming protocols may not work well unless slower parts of the system regulate the speed of transmission to prevent loss of data. With ZMODEM, SuperKermit, and other streaming protocols, inexplicable retransmissions of data blocks, often at regular intervals, indicate flow control failure. If you wish to keep things simple, the sending computer should not operate at a higher interface speed than the slowest link in the network. Otherwise precautions must be taken to prevent data loss with interactive operations and unnecessary retransmissions with streaming file transfer protcols. ZCOMM, ZCOMM, and DSZ default to software flow control with XON and XOFF characters.[1] When used with modems that require hardware flow control, the handshake command (q.v.) should be used to specify which hardware lines are to be used for flow control. Non transparent software flow control is incompatible with Emacs editors, XMODEM and YMODEM transfers. XMODEM and YMODEM require complete transparency to all 256 8 bit codes. An XMODEM transfer that always fails at the same block results from non transparent flow control. When XMODEM-1k and YMODEM-1k are used, the network must assert flow control, or handle bursts of 1040 characters without data loss. When X.25 or hardware CTS is unavailable, flow control that does not "eat" any characters may be used with XMODEM and YMODEM. When buffers fill up, an XOFF should be emitted. An XON should be __________ 1. The PCDOS flavor enables "handshake both" when selecting a port with an active Clear To Send (CTS) signal that was previously initialized to a speed greater than 2400 bps (C) 1990 Omen Tech Inc Chapter 15 Flow Control Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 77 sent when the buffer has emptied. Otherwise, the network should neither generate nor eat XON or XOFF characters. On Telenet, this is obtained by setting CCIT X3 5:1 and 12:1 in the PADs (Packet Assembler Dissassembler) at both ends of the network. Packets should be forwarded when the packet is a full 128 bytes, or after a moderate delay (3:0,4:10). Set parameter 5 to 1 at both ends AFTER one is connected to the remote modem. (Sorry, these commands must be given each time you connect to a modem in the far city!) @ set 5:1 rst? 5:1 cont ZMODEM and Kermit protect all 4 XOFF and XON characters, commonly used network control characters and trigger strings. ZMODEM and Kermit are compatible with many networks that do not support XMODEM family protocols, including some that claim network compatibility. For PADs that do not accept "rst?", use: @ set 4:2,5:1,12:1 cont For best Telenet download throughput, parameter 64 (advance ACK) should be set to 7. The parameter 0 is a dummy argument that distinguishes Telenet parameters from CCIT parameters. @ set 0:0,64:7 cont Sometimes Telenet flow control stops data transmission when the network buffers are not yet full. If you often see "STOPPED" flashing in the status line (DOS versions), or if you see the modem send data light pause in a ZMODEM or SuperKermit file send, poor flow control may be the culprit. Such slowdowns are typical when a network is overloaded. If this condition persists, the network should take steps to reduce the congestion. Turning OFF network flow control and activating ZMODEM's or SuperKermit's protocol flow control may increase throughput under these conditions. Instead of or in addition to XON/XOFF flow control, the sending program's ZMODEM w numeric parameter can restrict the window size to a value that does not overload the network. A zmodem pw2048 command restricts the window size (maximum number of bytes in transit) to 2048. This causes the sz command to trigger the receiver's acknowledgement every 512 bytes (one fourth the value of the ZMODEM w numeric parameter). The sender monitors these responses and suspends transmission when necessary to restrict the window to the specified size. Until a network dependent lower limit is reached, lower window sizes improve the speed of error recovery at the expense of slight increases in protocol overhead. When the window size becomes less than the number of characters sent within the network's transit time, throughput falls off rapidly. Frequent protocol acknowledgements slow down high speed psuedo full duplex modems (US Robotics HST, Telebit (C) 1990 Omen Tech Inc Chapter 15 Flow Control Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 78 TrailBlazer) and should be avoided. ZMODEM-90(TM) allows the receiver to specify the window size with the -Wn option where n is the desired window size. EXAMPLE: set adlopts W8192 requests an 8193 byte window size. Some modems and networks can be configured to flush (discard the contents of) their buffers when a break signal is received. If this is possible, error recovery with ZMODEM transfers may be speeded up by setting the ZMODEM b parameter to 1, which sends a break whenever the ZMODEM sending program gets a retransmission request. Network and Flow Control (FC) Compatibility ______________________________________________________________________ | Network | Interactive | XMODEM | WXMODEM | S-KERMIT | ZMODEM | |________________|_____________|________|_________|__________|________| |No Network | YES | YES | YES | YES | YES | |8 bit, no FC | NO | YES | YES | YES(1) | YES(1) | |Transparent FC | YES | YES | YES | YES | YES | |Non Transparent | YES | NO | NO | YES | YES | |7 bit | YES | NO | NO | YES | YES(2) | |________________|_____________|________|_________|__________|________| (1) Window size must be restricted to avoid buffer overrun if the network cannot transfer data at full speed. (2) Requires ZMODEM-90(TM) 7-bit support 15.1 Got ZRPOS Errors Got ZRPOS indicates the receiving program has detected a transmission error and has requested retransmission. In other words, ZMODEM is doing its job of detecting and correcting missing and garbled data. If this happens with error correcting modems, or more often than observed line noise would suggest, the receiver's error messages must be studied. "Line Status Register 01" messages indicate a flow control problem. "Line Status Register 02" messages suggest a receiver problem with interrupt latency. Otherwise, the sender may have a flow control problem in one of four areas: + Between the sending program and its modem. If using an interface speed higher than the transmission speed, or modem to modem error correction (MNP, LAPB, PEP, etc.), check that the modem and the sending program are configured for the same flow control methods. Omen Technology's software is faster than most other programs, and may expose flow control problems not seen with slower software. (C) 1990 Omen Tech Inc Chapter 15 Flow Control Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 79 + Between the sending modem and the network. Correcting this requires "handshake both" to allow the sending program to honor both hardware (CTS) flow control from the modem and software flow control (XON/XOFF) from the network. + Between parts of the network. + Between the receiving modem and the receiving program. This can happen at high transmission speeds when the receiver has specified a large I/O buffer size with the B numeric parameter. Excessive interrupt latency from extended memory ramdisks or disk caches, and poorly written hard disk drivers also wreak havoc on streaming protocols but do not affect start-stop protocols (XMODEM, etc.). Problems with extended memory disk caches may cause errors at regular intervals; check the receiver's error messages. To work around these problems, give the "handshake slow" command to the receiver. (C) 1990 Omen Tech Inc Chapter 15 Running ZCOMM Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 80 16. RUNNING ZCOMM Before running ZCOMM, the keyboard Caps Lock should be turned off. ZCOMM commands and most arguments must be entered in lower case. 16.1 Running ZCOMM from DOS ZCOMM is called from DOS as ZCOMM [DPORT=n] [command ...] The following special commands may be given from the command line only. DPORT=n is an optional override to the default comm port. If another program is using the default comm port, ZCOMM may be told to use another port to prevent interference. SEE ALSO: DPORT environment variable Command may be any desired combination of ZCOMM commands. Command line arguments to ZCOMM must be in lower case except as noted. EXAMPLE: C>ZCOMM call cissig invokes ZCOMM and executes the commands in the "cissig" telephone directory entry. EXAMPLE: C>ZCOMM DPORT=2 call othersys Selects COM2 before initializing the serial port 16.1.1 DOS Environment Variables DOS environment variables are set with the DOS set command in the form SET VARIABLE=VALUE given in a batch file or at the DOS prompt. NOTE: There must not be any spaces before or after the "=" sign. If you set many environment variables, DOS will quietly forget some of them unless you tell DOS to make more room for them. You can issue the DOS "set" command by itself to check the accuracy of DOS environment variables. ZCOMM searches the DOS Environment for the following variables: CBSIZE overrides the default allocation for the circular buffer.** If memory is limited, the DOS command SET CBSIZE=3000 will leave more memory for DOS Gateway or other programs. CBSIZE may be set as high as 65500. EXAMPLE: C>SET CBSIZE=65000 (C) 1990 Omen Tech Inc Chapter 16 Running ZCOMM Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 81 COMSPEC ZCOMM uses the DOS COMSPEC environment variable to load COMMAND.COM or similar program to parse and execute DOS gateways (shell escapes). DIRRX, DIRSX, DIRCX, DIRPX, DIRFX Contain optional receive (DIRRX), send (DIRSX), capture (DIRCX), paste (DIRPX), and file (DIRFX) directory presets. When ZCOMM starts, these environment variables preset the dirrx, dirsx, dircx, dirpx and dirfx string variables respectively. DIRSIZE controls the number of directory items that may be sorted with each wildcard. It should be set to 23 * times the desired number of entries (default = 200). If more directory entries are encountered, they are processed without sorting. EXAMPLE: C>set DIRSIZE=8000 DPORT overrides the default modem port (COM1) initially accessed by ZCOMM. EXAMPLE: C>set DPORT=2 The DPORT environment variable can also be specified as a hex port address,vector number pair. EXAMPLE: C>set DPORT=2f8,5 SEE ALSO: portx command EGA Stting this to MONO causes ZCOMM to use video mode 7 for 80x25 column text instead of the default video mode 3. This is needed when using some EGA cards with an Monochrome MDA compatible monitor. EXAMPLE: C>set EGA=MONO HOTPORT Suppresses the "Warning: Old dport=" message (q.v.) seen when Zcomm is called from certain operating systems or programs. EXAMPLE: C>set HOTPORT=1 SEE ALSO: port, portx commands MODEM Describes the type of modem used by the mm224e.t script. See Chapter 9 for details. EXAMPLE: C>set MODEM=mm224e.t (C) 1990 Omen Tech Inc Chapter 16 Running ZCOMM Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 82 PATH must include the directories containing ZCOMM and the help processor YHP. PHONES overrides the default pathname used to fetch ZCOMM's telephone directory. Forward slashes should be used to indicate directories. EXAMPLE: C>set PHONES=c:/yam/phones.t YAMQUIET Inhibits the display and locks the keyboard, preventing ZCOMM from writing on the screen. * This is useful when calling ZCOMM from another program. EXAMPLE: C>set YAMQUIET=257 Performs the equivalent of an initial kbdlock 257 command. SEE ALSO: kbdlock command ZONE sets the z numeric parameter to the number of minutes the current local time lags GMT time. EXAMPLE: C>set ZONE=420 SEE ALSO: z numeric parameter Before running the X.PC* version of Pro-YAM, you must run the Tymnet X.PC driver to make it resident by calling the driver from DOS. The driver announces itself and returns control to DOS. The Tymnet X.PC driver uses approximately 40kb memory. EXAMPLE: xpcmain 16.1.2 Help Program Environment Variables The flash-up help processor program YHP examines the environment for the NORMATTR, REVATTR, and UNDLATTR variables. These set help screen parameters for normal, reverse video, and underline attributes corresponding to the n,r, and u numeric parameters. EXAMPLE: C>set NORMATTR=3 (C) 1990 Omen Tech Inc Chapter 16 Running ZCOMM Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 83 16.2 Dialing out from Unix ZCOMM is called from Unix as [DPORT=S] yam [command ...] DPORT=S is an optional override to the initial default serial line. If another program is using the line, ZCOMM complains that the port is busy and will refuse to open it. Command may be any desired combination of ZCOMM commands. EXAMPLE: yam call cissig invokes ZCOMM and executes the commands in the "cissig" telephone directory entry. EXAMPLE: DPORT=tty77 yam call othersys Selects /dev/tty77 before executing the othersys telephone directory entry. If ZCOMM is run in the background, it will exit if it reaches the main command prompt. EXAMPLE: yam call cissig& As a form of shorthand, ZCOMM may be invoked as call if that is the command to be executed. EXAMPLE: call cissig 16.2.1 X Windows When run under the X Windows xterm(1) interface program (indicated by the Unix TERM environment variable), ZCOMM understands xterm's keyboard mappings for function and ALT keys. 16.2.2 UNIX/XENIX Environment Variables Unix/Xenix ZCOMM flavors search the Environment for the following variables: CBSIZE overrides the default allocation for the circular buffer. On 32 bit systems, the maximum CBSIZE is limited only by the operating system's process size limit. EXAMPLE: CBSIZE=300000; export CBSIZE DIRRX, DIRSX, DIRCX, DIRPX, DIRFX Perform the same function as described for the DOS flavor above. (Since Unix does not use colon (:) as a device specifier, Unix flavors do not treat colon(s) in pathnames in any special way.) (C) 1990 Omen Tech Inc Chapter 16 Running ZCOMM Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 84 DPORT overrides the default modem port initially accessed by ZCOMM. EXAMPLE: DPORT=tty12; export DPORT HZ Indicates the number of kernel "clock ticks" per second. This calibrates terminal function timeouts, protocol timeouts, and the sleep command. The HZ environment variable must be set if the value used by your system is not 100 clock ticks per second. LOGFILE Specifies the pathname for the log file (default: /tmp/yamlog.tmp) created by the -v option when invoking ZCOMM as xyam, rz, sz, rb, sb, rx, or sx. SEE ALSO: v option MODEM Describes the type of modem used by the mm224 script. See Chapter 9 for details. EXAMPLE: MODEM=MM224E; export MODEM PATH must include the directories containing yam and the help processor yhp. PHONES overrides the default pathname used to fetch ZCOMM's telephone directory. EXAMPLE: PHONES=/usr/lib/local/localphone.t; export PHONES SHELL ZCOMM uses this environment variable to select the appropriate program for its shell escapes. TERM If the TERM environment variable contains xterm, xterms or anything else beginning with xterm, ZCOMM assumes it is operating as a subprocess to the Xwindows xterm(1) program, enabling a term function status line if the X numeric parameter allows. SEE ALSO: X numeric parameter The LINES and COLUMNS environment variables preset the # and $ numeric parameters respectively. This assumption may be overridden by setting the X numeric parameter. If the TERM environment parameter contains the string 401 indicating emulation of a Tektronix 4010 series storage tube terminal, status line updates are inhibited when Tek graphics is active. If the TERM environment parameter begins with "wy" (as in (C) 1990 Omen Tech Inc Chapter 16 Running ZCOMM Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 85 "wy60") ZCOMM will use and recognize Wyse escape sequences. The TERM environment variable is also checked for AT386 which enables a different decoding of keyboard escape sequences. UUCPLOCK If UUCPLOCK contains "/usr/spool/locks/LCK.." ZCOMM uses "Honey Danber" uucp port arbitration conventions. 16.3 Dialing in to Unix Unix flavors may be used for dial-in applications to transfer files and commands with programs logged in to terminal ports. The commands rz, sz, zcommand, and zcommandi perform the same functions as the corresponding ZCOMM commands. They may be given directly to the shell or executed from a shell script or Makefile. EXAMPLE: sz -Yn *.c *.h The Makefile fragment below commands a DOS ZCOMM logged into a serial port to clear its dirrx string parameter, change to its root directory, and then sends a new version of the executable to the DOS machine. EXAMPLE: cpsz:/tmp/yam.exe @zcommand 'set dirrx ""' @zcommand "c:;cd /" @sz -y /tmp/yam.exe More general command sequences or other protocols such as Kermit may be accessed with the xyam command. EXAMPLE: xyam kermit sb *.c *.h EXAMPLE: xyam z pl256 sz -Yn *.c *.h 16.3.1 Initialized Logins When a user logs in, the Unix shell executes commands in .profile in the user's home directory. This can be used to accept file(s) from callers, send file(s), perform suitable processing, and log out the user automatically. The following .profile disables hangup and interrupt signals, then invokes xyam to execute commands in a script. set -e trap "" 1 2 3 xyam source inbound.t exit (C) 1990 Omen Tech Inc Chapter 16 Running ZCOMM Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 86 The following inbound.t receives a file from a hand held aviation recorder. echo "Send XMODEM file" ena -d rx -y airlink.tmp if ? echo "File Received" if !? echo "Sorry." (C) 1990 Omen Tech Inc Chapter 16 Commands Outline Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 87 17. OUTLINE OF COMMANDS 17.1 Setup port 1 ..........................Select the modem port portx hbase,vec .................Select non standard modem speed 1200 ......................Set the "baud rate" handshake {on|off|cts|dsr|dcd|both|slow}Hardware flow control 17.2 Data Call queue............................Manipulate a dialing queue call [-N] system ................[N retries] 234-5678 ........................Dial a local number 234-5678/mnp ....................Dial a local number with MNP %l-503-621-3746 .................Dial long distance learn lfile .....................TurboLearn information to lfile xpc C ... .......................Enable and control virtual channels with X.PC bye .............................Disconnect current call off .............................Disconnect and exit String parameters: phones, mcommand, mprefix, msuffix, mconnect 17.3 Interactive Operation F2, t [-modes] ..................Begin terminal conversation learn lfile .....................TurboLearn information to lfile conf ............................Online conference with edit window F8 ..............................Generate a password enable -modes ...................Modify term function characteristics set .............................Assigns a string or command to a function key String parameters break, bs, esc, etx, xpassword, entstr, lpnono 17.4 Message Transfer Commands Normal Interactive Transfers f [-modes] file .................Send file with the term function t [-modes] file .................Terminal conversation with capture to file kill ............................Erase the contents of the circular buffer w, ALT-W ........................Write the circular buffer close, ALT-C ....................Close the capture file Term Function Modes .............(capture/send modifiers) String parameters: eolstr, blankfill (C) 1990 Omen Tech Inc Chapter 17 Commands Outline Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 88 Special File Transfers fput ............................High Speed file dump to modem fpute ...........................Send file with Echoplex check fget ............................High speed modem to disk data dump 17.5 Protocol File Transfer Commands F3, rb [-options] [dir] [file ...] Receive files with YMODEM or Clink rz [-options] [dir] [file ...] ..Receive files with ZMODEM kermit rb [-options] ............Receive files with Kermit rx [-options] rxfile ............Receive a file with XMODEM rt [-options] [dir] [file ...] ..Receive files with Telink/FIDO r7 [-options] [dir] [file ...] ..Receive files with MODEM7 ro [-options] rxfile ............Receive a file with XMODEM OverThruster rw [-options] rxfile ............Receive a file with WXMODEM rc [-options] rxfile ............Receive a file with XMODEM/CRC sz [-options] txfile ... ........Send file(s) with ZMODEM sb [-options] txfile ... ........Send file(s) with YMODEM or Clink sx [-options] txfile ............Send a file with XMODEM or XMODEM/CRC st [-options] txfile ... ........Send file(s) with Telink/FIDO s7 [-options] txfile ... ........Send file(s) with MODEM7 zcommand COMMAND ................Remote COMMAND with ZMODEM !!COMMAND........................Remote COMMAND with Kermit or ZMODEM kermit sb [-options] txfile ... .Send file(s) with Kermit Kermit Server Access Commands AUTOMATIC File Transfers.........(Compuserve-B, Kermit, ZMODEM) String parameters adlopts Options for Protocol File Transfers Numeric Parameters for XMODEM/YMODEM/ZMODEM Transfers Special Keys for Protocol Transfers 17.6 Macro Commands call system .....................Execute telephone directory entry r [oldcmd] ......................Reenter previous command Up, Down ........................Select previous commands for reentry source scriptfile ...............Call subroutine set .............................Assign a string or command to a function key keys ............................Display soft key definitions reskeys .........................Clear soft key definitions SOFT KEYS .......................Transmit strings or execute commands. (C) 1990 Omen Tech Inc Chapter 17 Commands Outline Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 89 17.7 Display Commands / Terminal Emulation display displaymodes ............Set CRT parameters, screen emulation cl, cls .........................Clear the Screen mk...............................Map keys for terminal emulation videobios N .....................Set video BIOS mode N (for 132 cols) 17.8 Disk/File Access Commands a: ..............................Change default disk ap file1 file2 ..................Append file1 to file2 apd file1 file2 .................Append file1 to file2, delete file1 cd directory ....................Change directory cdd D:dir .......................Change disk and directory dir[rlstx] ......................Sorted directory listings !DOS-command ....................DOS Gateway to another program browse file .....................Browse a set of files crc file ... ....................Display 32 bit file CRC's del file ........................Delete files from disk dump file ... ...................Side by Side HEX/ASCII file dump egrep regular-expression file ... Pattern matching file searching egrepq regular-expression file ... String extraction find string file ... ............Case insensitive file searching findq string file ... ...........String extraction list file ... ...................File list on DOS standard output page file ... ...................Pauses after each screenful read file .......................Fill circular buffer from open file seek [-]offset ..................Seek to location in file Home, End, PgUp .................Enter review function sum file ... ....................Display Unix style file checksum usq file ... ....................Unequeeze, [decrypt] files wc file ... .....................File character, word, line count outfile ........................Redirect utility command output 17.9 Remote Takeover / Control host ............................Enter Host Operation link ............................Connect to another computer message .........................Leave a public message private .........................Leave a private message remote ..........................Accept remote commands unrestrict.......................Allow caller unrestricted access (C) 1990 Omen Tech Inc Chapter 17 Commands Outline Version 17.78 TurboDial 2.35 Universal Line Printer Edition ZCOMM User Manual 90 17.10 Support Commands bdump file ......................Dump interrupt input buffer to file display displaymodes ............List or change CRT operation enable -mode[s]..................Modify term function operation exit ............................Exit to DOS help ............................Activate help database kbdlock on|off ..................Lock/Unlock keyboard kbdmon [file] ...................Monitor keystrokes in file p ...............................Set/display numeric parameters reset............................Reset display and disk system set .............................Set string parameters / soft keys 17.11 Record Keeping Commands nolog ...........................Inhibit next log entry timestamp .......................Display/write time and other info restime .........................Reset elapsed time counter to 0 String parameters: calllog, txlog, rxlog, plog, rxcnt 17.12 Script Commands abort ...........................Returns to command prompt accept ..........................Read keyboard response to string variable bg...............................Indicate background operation createx file ....................Exclusive file creation (for semaphores) echo ............................Display message fg...............................Indicate foreground operation kill [-signum] procnum ..........Interprocess communications lput string .....................Local screen write lputp string ....................Output string to printer expand script pathspec ..........Execute script for each file in pathspec fail ............................Failure return from script gosub name[.file] ...............Script subroutine call goto ............................Branch to label in same script. grab svar .......................Read line from file to string variable if, else.........................Execute rest of line conditionally kbdlock on|off ..................Lock/Unlock keyboard ki ..............................Reset capture buffer search area on ..............................Conditional execution, tested after each command pattern .........................Specify string searches in modem data purge{k|l} ......................Purge typeahead or modem input buffer put[v] ..........................Send string [variable] to modem return...........................Return to previous script level (C) 1990 Omen Tech Inc Chapter 17 Commands Outline