SZMODEM ver 1.50 ----------------- By Scott M. Baker What is SZModem? SZModem is a zmodem-compatible protocol with a few added features. It is fully compatible with normal zmodem, but adds special capabilities both when talking to normal zmodems and while talking to other copies of SZModem. The main idea behind SZModem is that you should be able to do other things while the transfer is taking place. Rather than have your computer tied up for an hour downloading a file, you can move around in the SDOS window and do directory maintenance, etc... What will it do? While SZModem is transferring a file, you may do the following: Connected to a "normal" zmodem such as DSZ. - List files marked for upload - List files received as they are received - Uses SDOS (simulated dos) to view directories, copy files, etc while the transfer is taking place. - View file contents as the file is being received (good for text files) - Play single-player games while transferring. - Built in mail reader allows sysops who are using a BBS program that uses FIDO message formats to read mail while transferring. Connected to another copy of SZModem. - All of the above capabilities - A "chat" mode allows the two sides to talk to each other. - Play multiplayer games such as Four-In-A-Row - The sender will automatically send a "advance transfer list" listing the files to be sent. This way, the receiver knows what he is receiving. - SZTurbo option allows SZModem to pass flow control characters unaltered across the modem. This allows for up to a four percent effeciency gain over normal Zmodem. - Ability to use large zmodem packet lengths - up to 2048 bytes at 2400 baud and 4096 bytes for higher speeds. - LZW compression routines allow significant efficiency improvements for text files, ASCII data, etc. Command specifics ----------------- F1 - Transfer (send) list This command will produce a windowed list of the files that have been sent, aborted, marked for sending, etc. Included is the file name, size, and all other pertinant information. You may use the up and down arrows if necessary to scroll the list. Pressing F1 again (i.e. while you are already in TLIST) will toggle between the file-information list and the file-description list. F2 - Received file list This command will produce a listing of the files are have been received. Similar to the "F1" list above, you may use the up/down arrows to scroll the list. THe list is updated as files are received. If you are connected to another copy of SZModem, the sender will transmit a special "advance transfer list" containing a listing of the files that will be sent. This list will be displayed with the F2 command. As with F1 above, pressing F2 again will toggle betweem the file information display and the file description display. F3 - SDOS (simulated dos) SDOS is a special dos emulator that lets you perform a variety of operations while the transfer is taking place. You can copy/move files, list directories, change attributes, etc - most of the common things you do with normal dos. You may get a listing of supported SDOS commands by typing "HELP" at the dos prompt. Typing help with a command name (i.e. HELP DIR) will display help for that specific command. Most SDOS commands are pseudo-multitasked as to not interfere with the transfer, although with high speed modems (i.e. 14,400 baud and up) the transfer may slow down during disk-intensive operations. F4 - COMM PARAMS This command will pop up a display of the current communications parameters - baud rate, parity, buffer status, etc. It can be useful in debugging difficulties. F5 - VIEW Pressing F5 will allow you to "view" the transfer as it is taking place. You will actually see the characters of the file, zmodem handshaking, and line noise as it takes place. If you press F5 while you are already in the view window, you will toggle the view mode. There are 6 different modes. Here is a listing: 1 - Direct ascii printing of characters as they are sent or recvd 2 - Ascii print only RECEIVED characters 3 - Ascii print only TRANSMITTED characters 4 - HEX printing of transmitted and received characters 5 - HEX printing of only received characters 6 - HEX printing of only transmitted characters The modes will cycle one at a time each time you press F5. Initially, this whole idea of the view mode was simply a debugging option for me, but I figure some users might like to watch the transfer taking place. F6 - MESSAGES The message display shows a log of the various messages that SZModem displays on the screen - CRC Error, Waiting for ZRINIT, stuff like that. F7 - CHAT This command can only be used when two SZModems are connected to each other - it won't work with a normal Zmodem. The chat mode allows you to talk to the user at the other end of the transfer. The screen will be split into two windows - one for what you type, one for what the other guy types. Pressing CTRL-G will page the other user if he isn't at his terminal. The page will beep for thirty seconds, one beep every three seconds. F8 - GAMES The games menu will be displayed and you can select a game to play while the transfer is taking place. There are two kinds of games - single player games which to play by yourself and multiplayer games in which you play against the guy on the other end. The single player games may be player no matter what you are connected to, but the multiplayer games require you to be connected to another copy of SZModem. F9 - MAIL READER This is a feature designed to be used by the sysops of Bulletin Boards which have a FIDO compatible message format. (See the below section on "The Mail Reader" for info on setting up this feature) By pressing F9, the sysop will be allowed to read messages in the chosen message base. There are several additional UNLISTED keys available in this window: "N" Move forward one message "P" Move backwards one message If the message is more than one screen, this will scroll the window. F10 - EXIT This brings you the exit option which aborts all files and returns you to the DOS prompt. COMMAND LINE OPTIONS -------------------- SZModem was designed specially to have a command line similar to the popular DSZ Zmodem protocol. This way users with an understanding of DSZ can easily set up SZModem. The options area as follows: "SZMODEM " Options can be any one of the following: "PORT x" specifies using comport x. (i.e. "PORT 2" would use com2) "SPEED x" specifies the baud rate (i.e. "SPEED 2400 would use 2400 baud) "IRQ x" specifies a nonstandard IRQ. (NOTE: please specify the address in DECIMAL, not HEX). You must supply BOTH an IRQ and an address to use nonstandard ports. "ADDR x" specifies a nonstandard ADDRESS. (NOTE: please specify the address in decimal, not hex). You must supply BOTH an IRQ and and address to use nonstandard ports. "/NOLOG" disables logging to the "SZMODEM.LOG" file. "/M" monochrome mode. "/DORINFO x" Specifies the node number of a dorinfo.def file to grab the user's name from. If you specify this option, SZModem will load in the dorinfo, get the user name, and display it in the screen so you know who is downloading. (I.e. specifying "/DORINFO 1" would load in "DORINFO1.DEF") "/INSIZE x" Specifies the size (in bytes) of the internal comm input buffer. (Note: not used if using fossil) "/OUTSIZE x" Specifies the size (in bytes) of the internal comm output buffer. (Note: Not used if using fossil) "/SZPATH x" Specifies a path to which the SZXFER$$.LST and SZMODEM.LOG files will be written to. If not specified, the files will be created in the current directory. "/DELAYTIME x" SZModem by default will wait 5 seconds at the end of transfer for a keypress to before exiting. BBS sysops may wish to lower this time for faster operation. The "x" specifies the default time to delay, which may be from 0-30 seconds. (NOTE: /DELAYTIME can be abbreviated /DT) "/SZTURBO" Causes SZModem to attempt to use the SZTurbo option if possible. If SZTurbo is to operate, both sides must have this option set. See "SZTURBO" below. (NOTE: /SZTURBO can be abbreviated /SZT) "/NBS" This stands for "normal block size". By default, if two SZmodem's are connected, they will allow the Zmodem packet length to rise to 2048 bytes/packet at 2400 baud or 4096 bytes/packet for higher speeds. Specifying "/NBS" will force SZModem to use block lengths of 1024 bytes or less. "/NORBL" Will cause your copy of SZModem to refuse to accept LARGE format (i.e. embedded file description info) advance transfer lists. "/NOSBL" Will cause your copy of SZModem to refuse to send LARGE format (i.e. embedded file description info) advance transfer lists. "/FL" This will cause SZModem to create an additional log file called "FILELOG.TXT". This log is intended to allow users to keep a record of files they receive. It only logs RECEIVED files and it includes the name, size, and optional description of the file. "/NOPAGE" This will prevent another copy of SZModem from paging your copy. "/FILEDESC x" This specifies an additional FILEDESC list of file descriptions. "x" is the path and filename of the file. See "Large Advance Transfer Lists" for more info. "/CHECKSNOW" If you are using a CGA card and it gets snow, try using this option. "/NOCOMP" This will force SZModem to disable file compression. "/FIDOAREA x" Specifies a fido-format message base that SZModem's built in mail reader will allow the sysop to read while a transfer is taking place. The "x" is the path. (i.e. "/FIDOAREA I:\BINKLEY\MESSAGES"). "/EGA" If you have an EGA or VGA display, this switch will enable the 43/50 line modes. "/DL" This option will cause SZModem to create a DSZ.LOG file. This file will contain a DSZ-style log. This option may be used with BBS programs that require a DSZ.LOG file to operate their external protocols. SZMODEM also will enable the DSZ.LOG if the environment variable "DSZLOG=xxx" is used. "/CFGPATH x" Specifies a path to where the configuration file (SZMODEM.CFG) can be found. "x" is the path with or without a trailing backslash. It doesn't matter. "/HARD" This turns on HARD flow control. This means that when your modem drops CTS, SZModem will stop transmitting until CTS is raised again. This option is frequently used with high speed modems and/or locked baud rates. "/SOFT" This is similar to the above HARD flow control, but uses ascii characters to control the flow. Namely, the Xon and Xoff characters - when XOFF is received, SZModem will stop transmitting and when XON is received, SZModem will resume. (Note: SZTURBO mode is not available with this type of handshaking) "/LOCK x" Specifies a locked baud rate. The com port will be set to the baud rate specified by this parameter, and the baud rate specified by "BAUD x" above will be used for estimation purposes. Transfer type may be any one of the following: "RZ" receive zmodem file(s) "SZ" send zmodem file(s) Filenames are interpreted as follows: Send mode: Multiple filespecs may be present. Wildcards are allowed. Recv mode: A path to the receive directory is expected. No filenames are necessary. If you add a filename, SZModem will strip it from the string and ignore it. EXAMPLES: --------- "SZMODEM PORT 4 SPEED 9600 SZ \UPLOAD\*.ZIP" Send all the .ZIP files in you upload directory using COM4 at 9600 baud. "SZMODEM SPEED 1200 RZ" Receive files at 1200 baud using COM1. Store them in the current directory. "SZMODEM PORT 3 RZ \TEMP" Receive files at 2400 baud using COM2. Store them in the "\TEMP" directory. Files ----- SZMODEM.EXE - The executable code for SZModem. This is what you need to call to execute the protocol. Memory requirements should be from 130-170k depending on how you have szmodem set up. SZCONFIG.EXE - This program allows you to set a variety of SZModem's default options and store them in the SZMODEM.CFG file. *SZMODEM.CFG - This file is created by the above SZCONFIG.EXE. It contains default option values for various SZMODEM parameters. Basically, you can use SZCONFIG.EXE to put the options here rather than specifying them on the command line. SZMODEM.DOC - These docs that you are reading. SZMODEM.TRV - A "trivia" file which lets you play trivia during SZModem. SZMODEM.HLP - An ASCII help file which contains help on the SimDos commands. *SZMODEM.LOG - A log created which contains a listing of files transferred, dates/times, etc. May be disabled with the "/NOLOG" option. You may set the path this file will be placed in with the "/SZPATH" option. *DSZ.LOG - If the /DL parameter was specified, this file will be created to allow for compatibility with the popular DSZ protocol. *SZXFER$$.LST - This is the "advance transfer list" file. It is created by the sender and if the receiver is also a zmodem, is sent to so the receiver may have a list of files to be received ahead of time. *FILELOG.TXT - If the "/FL" parameter is specified, this will will contain a listing of all files received (downloaded) by SZModem. Included is the file name, size, and optional description. (* Denotes file is CREATED by SZModem, not distributed with the package) Hardware Requirements --------------------- Processor: 10mhz 80286 or greater suggested, but will work with any IBM-PC compatible machine. Display: Anything should work Memory: SZMODEM.EXE 130-107k Nonstandard port addresses: --------------------------- You must use the "IRQ x" and "ADDR x" parameters to specify a nonstandard com port. Numbers must be in DECIMAL, not HEX. DO NOT specify a "PORT" if you use nonstandards. For example: "SZMODEM IRQ 2 ADDR 1016" would cause szmodem to use whatever port is at IRQ=2 and ADDRESS=1016 ($3F8 hex) The Overlay Version ------------------- There is now one and only one version of SZMODEM.EXE distributed in the package. Before, we had three seperate versions configured for various memory requirements, but from now on, there is only one. For those of you who are curious, the version of SZModem distributed is the overlay one (used to be SZMODOVR.EXE). I did this since the old SZMODEM.EXE was gobbling up too much memory to be useful and the SZMODSML.EXE version wasn't saving enough space to justify it. Flow Control, Handshaking, High-Speed Modems, Locked baud --------------------------------------------------------- SZModem includes two command line options for controlling computer- to-modem handshaking. This handshaking allows the modem to send some form of signal to SZModem to tell SZModem to stop sending data if the modem's buffer becomes overflowed. If you are using a 2400 baud modem or lower, and are sending data to this modem at 2400 baud, then no handshaking options should be necessary. But, if you are using a high speed modem at a locked baud rate, handshaking is VERY necessary. The are two type of handshaking: HARD and SOFT. Hard handshaking uses the CTS/RTS lines (i.e. wires) between your modem to control data flow and is considered the better of the two. SOFT handshaking uses two special ASCII characters, XON and XOFF, to control handshaking. Basically, you have to match SZModem to the type of handshaking your modem uses. To enable HARD handshaking, specify the "/HARD" option on the command line. To enable SOFT handshaking, specify "/SOFT". You should only specify one, not both. Consult your modem manual, bbs software docs, etc for more information on handshaking. SZTetris! --------- New with version 1.50, a game called "SZTetris" has been included in the games (F8) menu. The game is your standard Tetris type game. You can use the arrow keys to move the falling blocks, the J,K,L keys, or the keypad w/numlock (4,5,6,2). The game is in its eary stages and may still have a couple of glitches in it. NOTE: SZTetris is a processor-speed hog. If your running szmodem at 19.2kbaud at a low cpu speed (8mhz or lower), you may get errors. On my 25mhz 386, however, I have tested szmodem at 19.2kbaud while playing sztetris with no troubles whatsoever. SZTurbo ------- SZTurbo is an option that will allow you to improve file transfer efficiency by as much as four percent. To explain how SZTurbo works, I must discuss a little about how Zmodem itself works. In the Zmodem specification, certain bytes cannot be transmitted freely across the modem connection. These bytes are XON, XOFF, ZDLE (a byte very important to Zmodem), and a few others. If for example, an XOFF was transmitted across the modem link, it could cause difficulties. Although these bytes may not be transmitted, they do occur in binary files so Zmodem must find someway to transmit them. What it does is send a ZDLE followed by byte (i.e. the XOFF) XOR 64. This translates the illegal character to a harmless ASCII letter that may be freely sent across the modem link. A few quick thoughts and you should be able to see that every time one of these "illegal" characters are encountered, two bytes (The ZDLE and the character XOR 64) must be sent. Sending two characters instead of one obviously adds overhead to the transfer, slowing it down. It turns out that most of these "illegal" characters are not illegal under most situations. Almost all current moedems are able to transfer XONs,XOFFs, etc just fine. So basically what SZTURBO does is send these illegal characters just like any other character. Here's a quick diagram to help explain this: Characters sent Character(s) sent Character in File without SZTurbo with SZTurbo ----------------- --------------------- ---------------- ZCHAT (#14) ZDLE (#24) "N" ZDLE (#24) "N" DLE (#16) ZDLE (#24) "P" DLE (#16) XON (#17) ZDLE (#24) "Q" XON (#17) XOFF (#19) ZDLE (#24) "S" XOFF (#19) ZDLE (#24) ZDLE (#24) "X" ZDLE (#24) "X" As you can see, SZTurbo shortens the sequences for DLE, XON, and XOFF from 2 characters down to one character. While this does not seem like much, it can add up to a four percent efficiency gain. When you're paying the long distance bill, you'll appreciate this. Specifying "/SZTURBO" on the command line will cause your copy of SZModem to "attempt" to engage the SZTurbo option. SZTurbo is only available if both sides have the option specified. Large Advance Transfer Lists ---------------------------- Starting with this version, there is support for a "large" advance transfer list. The main difference between the normal list and the "large" list is that the large list contains optional file descriptions as well as the name, date, etc. The receiver or sender may browse through these descriptions while the transfer is taking place. The problem is, SZModem can't just make up these descriptions itself. The sender must somehow provide SZModem with the descriptions. If the sender is a bbs program, then the descriptions are available from the BBS's file catalog. The descriptions must, however, still be converted to a format that SZModem can understand. SZModem will look for file descriptions in the file "FILEDESC.TXT" (or "FILEDE1.TXT", "FILEDE2.TXT", etc if you are multinode) in the directory specified by the /SZPATH option. This file follows a simple format. It is plain ASCII with each line of the file corresponding to a file. The filename starts at column 1 and the descriptions starts at column 15. For example: ::-- Col. 1 ::--- col. 15 :: :: \/ \/ SZMOD120.ZIP Zmodem protocol with Chat, Simdos, etc GALWAR75.ZIP Galactic Warzone version 7.5 DOORDR30.ZIP Doordriver door support routines MACH10.ZIP Mach-10 bbs When SZModem loads, providing the /NOSBL switch is not specified and providing this file exists, the descriptions will be searched, loaded, and sent to the receiver providing his /NORBL switch is not set. As you have probably noticed, this format is probably not what your bbs uses. Since I don't have information on the file formats of most BBS packages, I had to make do with this "generic" format. Hopefully, some bbs sysops who are programmers can write a utility to grab the necessary descriptions out of their file catalogs and throw them into the FILEDESC.TXT file. Note: The FILEDESC.TXT file may be named FILEDE1.TXT or FILEDE2.TXT depending on your configuration. The /DORINFO switch will determine which .TXT file SZModem will look for. If no /DORINFO is specified, FILEDESC.TXT will be used. If /DORINFO 1 was specified, FILEDE1.TXT will be loaded. Examples: Filedesc file used ------------------ SZMODEM SZ FOO.BAR FILEDESC.TXT SZMODEM /DORINFO 1 SZ FOO.BAR FILEDE1.TXT SZMODEM /DORINFO 2 SZ FOO.BAR FILEDE2.TXT SZMODEM /SZPATH \protocol SZ FOO.BAR \PROTOCOL\FILEDESC.TXT SZMODEM /SZPATH \protocol /DORINFO 1 ..... \PROTOCOL\FILEDE1.TXT Now, a quick word on the /NOSBL and /NORBL switches. If you specify /NOSBL, your copy of SZModem will not send the description info under any circumstances. If you specify /NORBL, your SZModem will not allow another SZModem to send the description info under any circumstances. Example: Sender Receiver Desc info sent ------------------ ------------------- -------------- SZMODEM SZ ... SZMODEM RZ ... *YES SZMODEM /NOSBL SZ SZMODEM (anything) NO SZMODEM (anything) SZMODEM /NORBL NO (* only if FILEDESC.TXT, FILEDE1.TXT, etc exists on sender side) Additional FILEDESC files may be specified using the /FILEDESC option. Use the format "/FILEDESC x" where "x" is the path and filename of the additional list to search. You may add as many of these additional lists as you wish. (NOTE: Operation will occur faster if all of the descriptions are in one file rather than many file) File Lists ---------- If you specify @ on then command line, will be opened and any file paths contained within will be sent. For example, suppose a textfile, "TOSEND.TXT" contained the following: \DOWNLOAD\SZMOD120.ZIP \MACH10\WELCOME.TXT \GALWAR\TWARS.EXE If you called up SZModem with the command line "SZMODEM SZ @TOSEND.TXT", SZModem would then send the three files listed above. This allows you to specify many different filenames in an ascii file rather than have to fit them all on the command line. You may also specify SZModem parameters in these "file lists". You could specify "/DORINFO 1 /SZTURBO /SZPATH \protocols", etc and then call it up with the "@" sign rather than having to put all of those options on the command line. File Compression ---------------- SZModem now includes a LZW compression module which can compress the file data as it is being sent. Although for binary and compressed data, the LZW compression will make little difference, it can create substantial compression for ASCII data, text files, word-processor files, etc. By default, compression is automatically enabled for any file with an extention other than ZIP,ZOO,PAK,ARC. If both SZModems support file compression and there is memory for the 21k hashing table, compression will occur on a block-by-block basis. The "packet size" display will reflect the size of compressed data subpacket and the (real) size of the uncompressed data in paranthesis (i.e. "Packet size....: 1398 (2048)" would indicate that 2048 bytes were compressed into 1398 bytes). To use the compression algorythm, an extra 21k of data space is necessary for a special "hashing table". If there is not 21k of memory available for SZModem, the hashing table will not be created, and compression will be disabled. The command line switch "/NOCOMP" may be used to force compression to be disabled. The Mail Reader --------------- SZModem is equipped with a mail reader capable which allows the sysop to read any messages in a fido-format message base. This feature is only useful for BBS systems or mail point systems, and has no particular interest to users. So far, SZModem can only handle one message area. I am making provisions to add support for more area, but that will be in a later version. To enable the mail reader, add the "/FIDOAREA x" switch into the command line, with "x" being the path to your fido area. (i.e. "/FIDOAREA I:\BINKLEY\MESSAGE"). No trailing backslash is necessary. Then, you may use the F9 key to enter the mail reader. The "N" and "P" keys will move you forward or reverse in the area and the SPACE bar will scroll a message. Benchmarks ---------- The following chart compares the CPS readings for some various protocols. SZMODEM ver 1.31 was used for the SZMODEM tests and DSZ1612 was used for the DSZ Zmodem, Xmodem, and ymodem tests. The tests were performed between two AT-class machines running at 8mhz. SZMODEM SZMODEM DSZ DSZ DSZ Filename File Size w/SZTURBO ZMODEM XMODEM YMODEM ------------ --------- --------- ------- ------ ------ ------ SYSOP.DOC 18357 399 390 235 200 200 MACHCTL.ZIP 20643 236 232 234 201 200 MOUSE.COM 14249 284 274 234 202 199 SIMCGA.ZIP 2406 233 233 235 200 200 Revison History --------------- Version 1.00 - First public BETA release. This software has not been tested very well at this point. There may be trouble with high speed modems, COM3/4 conflicts, etc. Please report any bugs to my bbs listed below. Version 1.01 - Fixed a problem that caused the DORINFO display that caused the users last name and city to be displayed. Now, the user's full name and city is displayed. Version 1.02 - Added the "/SZPATH" option to allow the user to specify what directory the SZMODEM.LOG and SZXFER$$.LST files will be placed in. Fixed a bug which was causing runtime error 2 that had to do with the SZXFER$$ list. Added "/DELAYTIME" option to specify time that SZModem will delay after a transmission is completed, waiting for a keypress. The CHAT indicator will now blink when a remote user is typing in chat and the local user is in another window. Version 1.10 - Added FREE and SIZE commands to simdos. See the SZMODEM.HLP file for more information. Various cosmetic improvements. Made the SIMDOS parser a bit more intelligent. It can now process commands without spaces between parameters such as "DIR/W" or "CD..". Added DELNUL command to delete zero-length files. SZModem now displays a small message if the user does not specify SZ or RZ. This helps new users to know they do in fact need to specify SZ/RZ. SZModem /HELP command now available. Displays a small help screen of some of SZModem's command line parameters. Major revisions to the actual ZMODEM transfer code. CRC32 now used rather than CRC16 and the block check display now correctly reflects this. (Note: If the sender requests CRC16, the receiver will be stuck with CRC16 also) Error correction will now function properly in both CRC32 and CRC16 modes. "Last frame" display on receiver now functions properly. Default delay time changed from 10 seconds to 5 seconds. (See /DELAYTIME above) Added an overlay version of the program (SZMODOVR.EXE) to allow for systems with less available memory. Version 1.20 Added SZTurbo option to increase transfer efficiency by as much as 4%. See the SZTurbo section of this doc for more info. Added "/NBS" option to allow users to restrict SZModem's block size down to the standard 1024 bytes/ block like normal zmodem. The minor version identifier (i.e. .20) is now sent along with the major version identified (i.e. 1) Message screen (F6) code revised to reduce flickering and add smoother scrolling. Two ZChallenges are now sent between copies of SZModem to allow for additional information to be passed - version numbers, flags, etc. Added provisions for LARGE Advance transfer lists. (See Above). The new large list allows the sender to send file descriptions along with the usual file info. Fixed the TLIST and RLIST displays so they scroll the corrent number of lines. Added "/FL" switch for a received file log. Version 1.21 Added more information to the log display. Fixed a bug which caused file descriptions to be garbage when receiving file from a normal Zmodem. Added ability to process file lists. (See above: File lists) Added /FILEDESC option to specify additional filedesc files. Added the /CHECKSNOW option to enable snow checking. Fixed the DELNUL command in SDOS so that it does not try to delete files as they are being received. Control-Break is now trapped and no longer aborts the program. Added CTRL-G option to allow users to page in chat mode. Version 1.30 Default internal output buffer size has been changed from 256 bytes to 512 bytes. Revised overlay code so hopefully SZMODOVR.EXE can be used by multiple nodes on a network without difficulty. Added file compression capability. LZW compression routines will speed up the transmission of most non-compressed data. Default internal input/output buffer sizes re-adjusted to 1k and 6k respectively. Added a simple sysop mail reader to allow the sysop to read mail while transfer is in progress. Fixed a bug with the ZChallenges that caused SZModem to not abort if the Zchallenges were not responded to. Included a "Small" version which is even smaller than the overlay version. Left out are the games module and the mail reader module. The filename is SZMODSML.EXE. Added a zip viewer to SimDos. The command "ZIPVIEW " will display the file directory of a zip file. Version 1.31 Added DEBUG command to simdos to allow users to browse through files in a hexadecimal mode. EGA/VGA 43/50 line modes are available with the /EGA command line switch. If SZTURBO is enabled and soft (Xon/Xoff) flow control is enabled, the SZTURBO will automatically be disabled. Added SZCONFIG.EXE configuration utility. /DL command line will enable a DSZ.LOG file log for compatibility with various bbs programs. Version 1.40 REMOVED FOSSIL SUPPORT There was just too little demand for use of the fossil interface routines and considering the overhead it was adding (an additional jump and compare for every async function can add up), the code was removed and the INTERNAL routines are now accessed directly. Major serial code revisions. On locked baud modems, the keyboard I/O shouldn't slow down quite as bad as before. Chat may still appear choppy though. Added a DORINFOx.DEF path to SZCONFIG.EXE. You may now set the path that SZModem will look for DORINFOx.DEF with SZCONFIG.EXE. Added CFGPATH parameter to specify path to the SZMODEM.CFG file. Version 1.41 Added information on HandShaking to docs. Added handshaking options to SZCONFIG.EXE. Added locked baud capabilities with the "/LOCK" parameter. Version 1.42 Fixed minor bug with command line options. Command line options now override environment vars at all times (i.e. SZMODEM port 2 would override SET DSZPORT= 1) If transfer times out, szmodem will return errorlevel of 1. DSZLOG is now appended to rather than rewritten by SZMODEM. Fixed problem with /CFGPATH causing files to be written to the root directory. Version 1.43 Added abbreviations "/SZT" for /SZTURBO and "/DT" for delay time. Added the "BROWSE" command to simdos. Browse will let you scroll up and down within a file. Fixed problem with received file path. Altered some code in the Z_challenge routine to compensate for a bug in QMODEM (Qmodem does not understand Z_Challenge requests which caused szmodem to abort the xfer) Altered some code to hopefully fix a glitch or two at high speeds. (14,400 and 19,200 baud may have gotten some aborts due to "header is fubar" messages. This should now be fixed) Version 1.44 Some cosmetic improvements and minor bug fixes. Added registration request. Added support for nonstandard IRQ/address Version 1.50 Added SZTETRIS! Available from the games menu! default delay time lowered to 2 seconds. Replaced the more-or-less meaningless ZFRAME status item with a realtime-updated CPS display. With the internal tetris, SZMODEM.EXE got too big to be usable; with some efficiency fixes, SZMODOVR and SZMODSML became about the same, so now we only distribute one version. The SZXFER$$.LST transfer list is now deleted after szmodem is completed. Shrunk the size of the control-key line at the bottom of the screen a bit to provide for additional screen space in sztetris, simdos, etc. Two extra lines can really make a difference! Credit to Other Authors ----------------------- 1) Turbo Pascal Zmodem Source. This software was built up from a rather buggy source code of Zmodem in turbo pascal. The code did not list an author. 2) ASYNC11 package by Mark Shultz. This excellent package provides for portions of SZModem's async support. The fossil interface is written by myself, but I also integrated these ASYNC11 internal routines to provide support for users without fossils. Registration ------------ SZModem represents many hours of programming and debugging. If you find this software useful, then please register your copy to support my efforts. I can not continue to work on major projects like this without sufficient compensation. The requested registration fee is $25. That will get you a disk containing the latest version of SZMODEM and place you on my mailing list for notification of upcoming releases. Included will be a utility which will allow you to register your copy of szmodem as well as any copies which you may receive in the future. Both disk formats (3.5" and 5.25" will be included) To register, please mail in the included REGISTER.FRM to the following address along with you check. (Sorry, but I cannot except credit cards) Scott Baker 6431 Tierra Catalina #48 Tucson, AZ 85718 I may also be reached through my online bulletin board: The Not-Yet-Named BBS 300,1200, 2400 baud (602) 577-3650 (602) 577-3419 Tucson, AZ The BBS always has the latest copy of SZModem (and any of my other projects) available for downloads. We are also part of FidoNet and RBBSNET and offer several file nad message areas.