home *** CD-ROM | disk | FTP | other *** search
- Zmax Introduction Guide rev. 1.00 Page 1
-
- Zmax
- Copyright 1990 Micro TECH Systems
- All Rights Reserved
-
- Zmax is designed to replace Zmodem. It uses 32 bit CRC's on
- file data blocks, the same as Zmodem, and 32 bit CRC's on its
- information blocks, Zmodem uses 16 bit.
-
- An information block is a block of data used to send
- information about the name of the file, the receivers system
- setup, about the next block of actual File Data, etc.
-
- Zmax is setup to allow almost unlimited future expansion to
- the protocol while allowing it to remain backwards compatible
- with older versions.
-
- In stream mode Zmax sends blocks, the size being set by the
- receiver, of data but doesn't require ACKS from the receiver.
-
- Zmax should (depending on equipment, phone lines,
- implementation, etc.) allow about 98.5 percent efficiency at
- 2400 baud on a 30K file compared to Zmodems 95 percent.
-
- And unlike Zmodem, Zmax reaches full speed on considerably
- smaller files.
-
- In Non-Stream mode (which can be set by the receiver OR the
- sender), Zmax is a super Batch Xmodem or Ymodem depending on
- the block size. Super because it uses 32 bit CRC's instead of
- 16.
-
- Even using Ymax mode (Zmax running 1K blocks with Acks
- required), you'll get faster transfers than under Zmodem. In
- fact, there wasn't any measurable difference between Ymax
- mode and Zmax mode on a 30K transfer. At least none that the
- efficiency computation routine showed.
-
- This is at 2400 baud of course. Non-Stream protocols don't
- fair near as well (speed wise) as Streamed protocols at
- highspeeds.
-
- We'll call Zmax running 128 byte blocks with ACKS Xmax mode.
- Running in this mode, you'll get about (maybe a tad better)
- Xmodem speed, but with the additional safty of 32bit CRCs.
-
- I'd suggest allowing your users to directly address the size
- of the receiver buffers and wheither or not to use ACKS as I
- have in the Zmax.c driver so they can customize several
- different versions to best fit the conditions they may
- encounter.
-
-
-
- Zmax Introduction Guide rev. 1.00 Page 2
-
- Why Non-Stream mode? Three reasons and the first being noisy
- lines.
-
- Stream protocols don't fair well under noisy lines. If you
- can SWITCH to non-stream (ack required) during the course of
- the transfer, your efficiency is generally better.
-
- The Second reason is computer type. Some computers can not
- handle writing to the disk and receiving data at the same
- time.
-
- If your writing a Zmax driver for a computer that falls into
- this category, write the block of data to the disk BEFORE you
- ACK the block. The sender will wait up to 30 seconds before
- assuming an error has occurred.
-
- The third and final reason one may wish to run in non-stream
- mode is to allow background tasking by commucations programs.
- Although I beleive that STREAM mode can function quick
- enough to allow this, if not then you have a method to fall
- back on.
-
- As outlined in the code segment, I suggest switching to NON-
- Stream mode when your block size reaches 128 bytes. I also
- suggest that you not go below 128 bytes. Primarily because
- you don't save much. It only takes about 2/10's of a second
- longer to send a 128 byte block over a 64 byte block at 2400
- baud, less at 9600+.
-
- Unlike Zmodem which sets an upper limit of 1024 bytes on
- block sizes, Zmax has an upper limit of over 32K. One
- shouldn't go that high, at least with the modems currently
- available. Because of this, Zmax may be used as a mailer
- protocol without ANY modifications.
-
- Zmax also has a LOT less CPU overhead than Zmodem so slower
- computers can drive highspeed modems FASTER.
-
- Zmax does not encode each byte of data like Zmodem does. I
- can't see any real advantage to doing this and it reduces the
- amount of CPU overhead and simplifies the code quite a bit.
-
- Zmax also treats all files as Binary 8 bit files and will
- require word length to be set to 8, which is the most common
- setting.
-
- Please pay special attention to the timer functions. They
- have been worked out over a two year period of heavy mailer
- use under all kinds of conditions and have proven to work
- exceptionally well on Networks, Satellite Links, and under
- Multi-Taskers. Changing any of them can lead to erratic
- behavior on YOUR Zmax implementation.
-
- Zmax Introduction Guide rev. 1.00 Page 3
-
- Zmax uses two block start characters, instead of the
- traditional one. I do that to keep a stray character (line
- noise) from accidentally triggering something it shouldn't.
-
- Why A Zmodem Replacement in the first place?
-
- Unless your attempting to write a Zmodem driver, you wouldn't
- understand.
-
- Zmodem isn't documented very well, in fact the only
- documentation that I'm aware of is the original 1988
- publication and you'll have a hard time finding that one now.
-
- It left much to the imagination and were little more than a
- few sheets of paper glorifying Zmodem. And it only contained
- scrap segments of code that few could get to work.
-
- Because of this, Zmodem implementations vary depending on who
- wrote it and they aren't always compatible.
-
- And finally: Because of the complexity of the zmodem
- protocol, systems with limited memory capablities (Apples,
- Color Computers, Commodores, etc.) have a very difficult if
- not impossible, time attempting to implement Zmodem in a 64K
- environment.
-
- I think actual CODE is better than extensive documentation,
- you can actual SEE how its suppose to work, so Zmax.c is
- provided.
-
- Zmax.c is a full functional Zmax driver. You'll not be able
- to simply compile it because I do use my own libraries, most
- have Microsoft counter parts. You shouldn't have any trouble
- telling WHAT a function does. Zmax.c also contains further
- information on specific aspects of Zmax.
-
- If you have any questions on ANY part of Zmax, one of our
- tech. will be glad to help you with your code implementation.
-
- Just call our customer support CBIS at 1-314-334-6359 and ask
- any question you like. Please allow 2 working days for a
- reply.
-
-
-
-
-
-
-
-
-
-
-
- Zmax Introduction Guide rev. 1.00 Page 4
-
- Zmax.exe
-
- Zmax.exe requires a number of command line switches; -B, -P,
- {-R or -F}.
-
- Full Command Line Switch Run Down
-
- -U Drive:path, directs that all files received should be
- stored on this drive and in this directory.
- This switch is primaryly for NON-OSIRIS,
- NON-QT systems. Osiris takes care of this
- internally and this switch should NOT be
- used.
-
- Example: -U C:\uploads
- -U D:\files\temp
- -U D:
-
- Do NOT end the path with a backslash "\"
-
- Illegal -U settings would be C:\
- C:\uploads\
- D:\files\temp\
-
-
- -B <Baud Rate>
- -P <Port Number>
- -L <Serial Lock Rate>
- -R Receive files
- -F <Filenames>
- -K Keep interrupted transfers (Do not use if running on a
- BBS)
- -B, supported baud rates 300 - 115,200 Baud.
- -P, Supported Com Ports, COM 1, COM 2, COM 3, and COM 4.
- -L, Supported Locked Baud Rates, 300 - 115200 Baud.
- -F, As many as DOS allows. Full drive, path, and filename
- supported.
- -A, Run in NON-STREAM mode.
- -S xxxx, Set block size to XXXX. Valid ranges; 1 - 2048.
- Going over 1024 at 2400 bps is NOT recommended. If
- this parameter is used, the -B MUST be used first
- because -B will reset the block size according to
- baud rate.
-
- NOTE: -R and -F MUST be the last
- parameter on the command line. As soon as
- Zmax encounters either one of these two
- switches, it will begin to either Receive
- or Send.
-
- There must be one at least blank space between The switch and
- the parameter..ie. -B<BLANK>2400
-
- Zmax Introduction Guide rev. 1.00 Page 5
-
- The -L switch is only for those that do not have COMx= set in
- the environment. If your running Osiris then Zmax will use
- the COMx= automatically.
-
- Sample Osiris Command line (protocol control file)
-
- Send : -N *N -B *B -P *P -F *F
- RCV : -N *N -B *B -P *P -R
-
- QuickTerm:
-
- Send : -B *B -P *P -F *F
- RCV : -K -B *B -P *P -R
-
- Zmax.exe End User (Non Developer) Licensing Information
-
- Zmax is NOT public domain. Micro TECH Systems Retains ALL
- RIGHTS TO THIS PROTOCOL.
-
- Zmax.exe is provided as shareware to those interested only in
- using the Zmax.exe protocol driver.
-
- A 10 dollar Licensing fee is required if you use Zmax.exe
- longer than 30 days.
-
-
- Developer Licensing Information
-
- Zmax is NOT public domain. Micro TECH Systems Retains ALL
- RIGHTS TO THIS PROTOCOL.
-
- No PART of Zmax may be used in development of a NON-ZMAX
- protocol.
-
- Developers are granted a license to use Zmax in NON-
- COMMERCIAL applications and environments ONLY.
-
- A 10 dollar donation is requested to help
- offset development costs and to help with
- the salaries of the technical support
- person(s).
-
- If you application is intended for use in a program that is
- to be sold commercially, including shareware, you must apply
- for a Zmax COMMERCIAL License.
-
- If you intend to develop a Zmax driver for USE in a
- commercial environment, you must apply for a Zmax COMMERCIAL
- license.
-
- All goverment agents Federal, State, and Local must apply for
- a Zmax COMMERICAL license.
-
- Zmax Introduction Guide rev. 1.00 Page 6
-
- If you intend to distribute your SOURCE code or otherwise
- make it available, the copyright notice found in Zmax.c MUST
- be included in your Zmax code segment.
-
- You may NOT modify Zmax specifications. Zmax MUST remain
- uniform and only Micro TECH Systems may issue NEW or IMPROVED
- Zmax specifications.
-
- If you have a particular item in mind, submit it along with a
- modified Zmax.c (Using our Zmax.c driver code) to Micro TECH
- Systems.
-
- Micro TECH Systems
- 555 North Spring, #39
- Cape Girardeau Mo. 63701
-
- Data Number 1-314-334-6359
-