ZIP.DOC ------- Instructions for ZIP.COM IBM PC Fast Serial File Transfer Utility Version 1.4 (9/17/89) (c)1988-89 E. Meyer Requires: two IBM PC compatible computers with DOS 2.x or above; appropriate serial (null modem) cable. ZIP is a tiny, fast utility to transfer files between two IBM compatible computers over an ordinary serial cable connection. This is especially useful when the computers don't share a common disk size or format. =============================== USAGE POLICY =============================== The ZIP utility and its documentation are copyright (c)1988-89 Eric Meyer, all rights reserved. They may not be circulated in any incomplete or modified form, nor sold for profit, without written permission of the author. The use or sale of ZIP is subject to the following terms: INDIVIDUAL USE: ZIP may be freely used and shared with others; there is ---------- no required registration fee. (If you like ZIP and find it useful, please do consider sending a contribution!) INSTITUTIONAL USE: Any corporation or institution wishing to use ZIP in the ------------- course of its business must purchase a SITE LICENSE. A standard license, allowing the use of ZIP on up to 20 different computers, can be ordered for US $50.00; write for terms concerning larger quantities. A disk containing the latest release of ZIP will be included at no additional charge (please specify 5.25" 360k or 3.5" 720k disk). COMMERCIAL SALE: Any software dealer or library may offer ZIP for sale, ---- as long as the price of the disk containing the program does not exceed US $5.00. With this single exception, the sale of ZIP for profit, either alone or together with other software or hardware, requires a contract to provide for royalty payments. Please write to the author for terms. CUSTOMIZATION: It is often possible to develop modified versions of ZIP for special applications. Contact the author for details. Eric Meyer 401 12th Ave SE, #139 CompuServe [74415,1305] Norman, OK 73071 USA DISCLAIMER: You undertake to use ZIP at your own risk. The author assumes no liability for damages of any kind resulting from your use of ZIP. =============================== INTRODUCTION =============================== Anyone with two computers probably needs to transfer programs or data between them. There are a number of ways to do this: (1) If you have compatible disk drives, you can just swap disks back and forth. But if you're transferring large amounts of data, or do this frequently, that's slow, and a lot of wasted motion. (2) If you have incompatible drives, like a PC/AT's 5.25" disks and a laptop or PS/2's 3.5" disks, you'd have to buy an expensive hardware add-on. Want to fill another slot with a proprietary card to communicate with your laptop? Want to buy an external disk drive, and haul it around with you? (3) You can buy a commercial file transfer program like LapLink or Brooklyn Bridge. Great software, and they even include a cable -- but often cost over $100, almost as much as a hardware solution. And as TSR drivers, they consume precious memory. (4) You can buy or make a simple null modem cable, and transfer files using the XMODEM protocol of your favorite telecom program. This cheap solution will work (I used to do it all the time) but even at 19200 bps it seems slow, and the software is cumbersome to set up and exit. (5) You can search the free/shareware world for a simple, efficient program designed to do this faster, by taking the data rate all the way up to 115200 bps like the commercial programs (LL,BB) do. PCMag's ZCOPY is one... but ZIP transmits about twice as fast (using a faster serial I/O technique), and has more powerful features. ZIP can transfer data up to 6 times faster than a telecom program over a serial cable... 48 times faster than typical modem transfers. Telecom programs: modem 2400 bps 0.3 K/sec : cable 19200 bps 2.3 K/sec ZIP: cable 115200 bps up to 14.1 K/sec If you don't own the latest '386, ZIP will come about as close to this amazing throughput as your computer speed allows. (Between my 8MHz XT clone and 4.77MHz laptop, it reaches about 10K/sec.) Of course, disk access also takes time; with any method, large amounts of data can be sent more quickly when using a hard or RAM disk, rather than a (slow) floppy disk drive. XMODEM TRANSFER BY CABLE As mentioned above, you can use most telecom programs to transfer files between computers by cable, without a modem. In fact, you may need to do this in order to get a copy of ZIP.COM on both computers before you can begin using it! The file transfer will work the same way as with a remote system, except that there is no modem and no dialing involved. You will need a serial (RS232) "null modem" cable -- NOT the same cable you connect to your modem, though such a cable should work if you attach a "null modem" adapter to it. Connect the serial cable; enter the telecom program and set the parameters (try 19200 bps, 8 bits, no parity) on both computers; enter terminal mode, unless (as in ProComm for example) you're there already; then try typing, and see if the characters appear on the other end. If not, you have a problem with the parameters, the port selection, or the cable. If so, go ahead and run the upload function on the machine that has ZIP, and download on the other, with your usual protocol (XMODEM or whatever). RUNNING ZIP Once you have a copy of ZIP on both computers, transferring a file is as easy as copying it from one disk to another. To transfer files, once the cable is properly connected to the serial ports of the two computers, from the DOS prompt: 1. MENU-DRIVEN OPERATION. Simply type "ZIP" on both machines; the program will step you through all the necessary choices, including transferring or receiving files. You will also have the option to view file directories and/or delete files. 2. Command line operation, for experienced users. (See full explanations and usage examples, below.) C>zip FILENAME to send a file C>zip /R to receive C>zip FILENAME /F to fetch a file from serer C>zip /S to enter server mode As each file is transferred you should see a blinking asterisk ("*"). When ZIP is running, it can be aborted by pressing ^C (or Ctrl-Break): (1) on either end, during initial handshaking (2) on sending end, during file transfer (will abort once current file is finished) (3) at any input prompt. SENDING FILES In menu mode, simply select "S"end, and you will be prompted for the filename(s). For command-line use, specify the name(s) of the file(s) to send: C>zip FILENAME The "FILENAME" can be a single file, or a GROUP specified by wildcards (eg, *.BAK) and/or commas (eg, FILE1,FILE2). Each name may include a directory. Any desired options may follow the filename(s). Files will appear with the same filename, in the receiving directory. RECEIVING FILES In menu mode, simply select "R"eceive, and you will be prompted for the directory to receive into. For command-line use, specify the option "/R" for RECEIVE: C>zip /R Each file will appear with its original filename. Files are received into the current directory, unless you specify another. In command line mode, this can be done in square brackets after the /R option: C>zip /r[DIRECTORY] (Note: ZIP also still accepts the syntax of earlier versions, where the directory was specified from the command line by typing: C>zip DIRECTORY /r but this tends to look confusing, and may not continue to be supported.) SELECTING THE SERIAL PORT IBM-compatible computers have anywhere from one to four serial (RS232) ports. By default ZIP uses the COM1 port. The standard port addresses are: COM1: 03F8h COM3:03E8h COM2: 02F8h COM4:02E8h Some computers (including PS/2s!) use different port addresses for COM3 and COM4; to use a nonstandard port address, you must modify ZIP.COM with ZIPCFG. You can select any standard COM port during operation of ZIP: in menu mode, just select the choice to modify "P"arameters. In command line mode, specify one of the following options: /1-4 = Use port COM1-4. You will see a note in the ZIP signon message, "Port=____", giving the port address in use. SELECTING FILES FROM A GROUP If you want to transfer only certain files in a group (such as *.BAK) with ZIP, you can request that you be prompted to confirm each file individually: you will be asked to hit a key (Y/N) to determine whether the file is to be sent. (In menu mode, you can select "O"ptions for a help message describing the selective copy operations.) After the names of files to be transferred, in menu or command line mode, specify this option: /P = PROMPT to confirm files individually This option (which can be combined with others) can be specified on either end -- but the option on the SENDING (or active) end governs each transfer. You will see a note in the ZIP signon message, "Option /P", if this option is in effect. OVERWRITING FILES It is possible that a file already exists on the receiving end with the same name as the one being sent. By default, ZIP doesn't care: it will transfer all files specified, whether or not they overwrite existing ones. Several options are provided to modify this behavior. (In menu mode, you can select "O"ptions for a help message describing the selective copy operations.) After the names of files to be transferred, in menu or command line mode, specify one (or two) of these options: /N = copy NONexisting files only (cannot be used with /E or /T) /E = copy EXISTING files only /T = TIMESTAMP determines files sent The /N option will prevent all files from being overwritten. The /T option will allow overwrites only when the new copy has a more recent time stamp. The /ET combination is especially useful for backup purposes: it transfers only more recent copies of files that already exist. These options can be specified independently on either computer -- but the options on the SENDING (or active) end govern each transfer. You will see a note in the ZIP signon message, "Option /_", if an option is in effect. SERVER MODE It would obviously be easier to transfer files if you could do all the typing from one keyboard -- and "server mode" lets you do just that. In server mode, ZIP stays "on line" on one end, ready to send or receive files, or answer directory requests, from the other end automatically. To enter server mode: in menu mode, just select the choice for ser"V"er. In command line mode, specify the option /S for SERVER: C>zip /S ZIP will then remain ready to exchange files until such time as you press ^C or Ctrl-Break to exit server mode. From the other ("active") keyboard, you can then transfer files TO the server; these will be received into the default directory, either the current one or another that you specify in square brackets: C>zip /s[NEWDIR] = Server mode, default directory NEWDIR. In any event, when you send files to the server, you will be prompted for a destination directory (if desired) to override the default on the server end. In command-line mode, you can specify this on the command line in brackets: C>zip sendfile /[DESTDIR] (Specify "/[]" if you simply want to avoid the prompt and use the default, for example, when running ZIP from a batch file.) You can also fetch files FROM the server. In menu mode, just select the choice to "F"etch files. In command line mode, specify the option: /F = Fetch specified files from server. You must specify the directory with the filenames, if they are not in the default directory on the server end. You will be prompted for a directory to receive the files into, unless you specify one in square brackets after the /F option: C>zip filename /f[DESTDIR] = Fetch into directory DESTDIR. (Again, specify "/f[]" to avoid the prompt and use the current directory.) A fetch request will not be completed until server mode is detected on the other end. VIEWING DIRECTORIES and DELETING FILES When ZIP is in menu-driven mode, you will see choices for "D"irectory and d"E"lete, offering simple file maintenance from within ZIP.COM itself. The directory function provides an alphabetized file listing for your reference, and the free space left on the disk. You will be prompted for the files to list. If you just hit RETURN, ZIP lists all files (*.*) in the default directory. The delete function prompts for a filename to delete (as always, a directory may be included). Note that wildcards ("*,?") are NOT allowed. If the other computer has ZIP running in SERVER MODE, you can also request a directory from it, or delete files on it. Simply type a ">" before the filespec for the server. This can be done alone, or together with a request on the active end: Directory: \WORK\*.BAK active alone Directory: >B:\BACKUP server alone Directory: \WORK\*.BAK >B:\BACKUP combined and similarly, Delete: \WORK\THIS.FIL >B:\BACKUP\THAT.FIL A server directory or delete request will not be completed until server mode is detected on the other end. USAGE EXAMPLES (Command line mode) SENDING FILES: C>zip myfile,work sends files C:MYFILE, C:WORK C>zip my.* /2 /p sends files C:MY.* over COM2, with prompts to confirm each file individually C>zip *.* /n sends all files which don't already exist on receiving directory C>zip a:chapter.* /et sends all files A:CHAPTER.* of which an older version exists on the receiving end RECEIVING FILES: C:\WORK>zip /r receives files into directory C:\WORK C:\WORK>zip /2 /r[\temp] receives over COM2 into directory C:\TEMP ENTERING SERVER MODE: C>zip /s waits as server to send or receive files C>zip /s[d:\] waits as server, with default directory D:\ EXCHANGING FILES WITH SERVER: C>zip *.bak /[] sends files *.BAK to server's default dir C>zip *.bak /[b:\recs] sends files *.BAK to directory B:\RECS C>zip b:\recs\my.* /f fetches files MY.* from directory B:\RECS C>zip b:\recs\my.* /f[\orig] fetches files MY.* from directory B:\RECS on server into directory C:\ORIG TECHNICAL DETAILS Like many communications programs, ZIP does full CRC (Cyclic Redundancy Checksum) verification on the data to guarantee accurate transfer, although ZIP uses its own transfer protocol. Be sure to use the SAME version of ZIP on both ends: the transfer protocol may have changed. Do not disturb the cable when ZIP is running, as this may cause the program to stall, requiring a reboot of your computer(s). Your SERIAL CABLE should be a "null modem" cable: if you're building or shopping for a cable, the transmit and receive data lines (pins 2 and 3 on a DB25 -- pins differ on a DB9) should be crossed, the frame and signal ground (1 and 7 on a DB25) straight through. No further connections should be needed; ZIP uses no hardware handshaking lines. Any cable that doesn't work by itself, should with a null modem adapter attached. If possible, use a properly shielded cable; high speed transmissions can be especially susceptible to RF interference. I am not an expert on RS232 hardware: find a good book if you need further assistance. Adjusting the Baud Rate and Delay BAUD RATE: ZIP normally transmits data at 115200 bps. For some specialized applications it may be necessary to set a slower baud rate. There is no run-time option for this; it can only be set with ZIPCFG. DELAY: Most users also will not need to worry about the "delay factor". (In fact, it will be removed from future versions unless users notify me that they still need it.) In theory, due to large differences in raw CPU speed, when sending files from a very fast '286 or '386 AT to a very slow PC, the receiver might be unable to keep up, and the transfer would be aborted. Therefore a delay factor is provided, ranging from 0 (the default) to 9, to slow down the sending rate. You can experiment with delay settings in menu mode (select the choice to modify "P"arameters), or make modifications with ZIPCFG to the copy of ZIP on the "fast" computer. This option can be specified on either computer -- but the setting on the SENDING end governs each transfer. You will see a note in the ZIP signon message, "Delay=_", giving the current default. USING ZIPCFG If you don't instruct it otherwise, ZIP will use its built-in "defaults" of port COM1, 115200 bps, no delay. You can, however, configure your copy of ZIP.COM to change these defaults as you like, using ZIPCFG.COM: just type C>zipcfg FILENAME (If you omit the filename it defaults to "ZIP.COM".) You will be given the chance to specify any new default values you like. Please DO NOT distribute modified copies of ZIP.COM; this could confuse other users. They are for your personal use only. (ZIPCFG includes an option to restore the original default values.) ERROR MESSAGES invalid command line argument(s). less than 64K free RAM available. no files transferred. (Bad cable? Wrong version?) function requires server mode on other computer. global filespec (eg *.*) includes over 512 files. name conflicts with a directory or read/only file. specified file didn't exist, was read/only, etc. trouble writing to disk. (Disk full?) you pressed ^C. error on other end; or, unrecoverable error. PROBLEMS USING ZIP ZIP now works well on the vast majority of systems; please let me know if you encounter trouble. Certain software can cause problems, however: use of ZIP is not recommended when running DesqView, or occasionally other memory resident software such as disk caches. VERSION HISTORY ZIP 1.0 (4/88) - trial release. 1.1 (4/88) - improved protocol; batch transfers; receive directory option; original file time/date preserved. 1.2 (5/88) - improved error handling; patchable default port also allows use of COM3,4; small bug fixes. 1.21 (5/88) - slower speed options; fixed bug in initializing ports. 1.22 (8/88) - improved protocol; fixed bug in deleting temp file. 1.23 (1/89) - menu-driven operation; detects disk-full errors. 1.3 (4/89) - selective copy options /P,N,E,T; server mode, fetch; file directory; internal improvements. 1.4 (9/89) - true error correction; delete file function; directory shows free space; ZIPCFG utility; small improvements. (One final note -- this should be obvious but I'll say it anyway: ZIP is not related to the new PKZIP series of file compression utilities by Phil Katz.) ====================================[end]=====================================