home *** CD-ROM | disk | FTP | other *** search
-
- This is an XPR 2.0 implementation of the YMODEM protocol.
-
- based on bmodem: the BIX modem program by David Betz, BYTE Magazine/BIX
-
- Source code modifications and additions needed for XPR are:
-
- NO Copyright 1991 Ueli -Lonely Rider- Kaufmann, NO Rights Reserved.
- ^^ ^^
-
- This software is provided "AS IS" without warranty of any kind, either
- expressed or implied, with respect to the programs described herein, their
- quality, performance, or fitness for any particular purpose.
-
- In no event will the author(s) be liable for direct, indirect, incidental,
- or consequential damages.
-
- redistribution of this software is permitted, provided that:
-
- NOTHING: This is purely Public Domain..!!
- You can do with it, whatever you want to do..(-:
- ^^^^
-
- By using or distributing this software, you agree to understand and accept
- the above. [ I HOPE, YOU UNDERSTOOD..(-: ]
-
-
- changes in:
-
- - v2.00
- - The library is now really pure..
- - Sometimes you could not send files bigger than 256kB. This resulted
- from the wellknown bug useing 16-bit ints and then compiling some
- parts of the code with 32-bit ints..)-:
- The biggest file I sent with v2.00 was the fido-nodelist (ca. 1mB)
- and everything smelled good..
-
- - v1.90
- - Output-option is only used in batch-mode..
- - some people had trouble useing xpr-ymodem in conjunction with
- n-comm v1.92 and atalk3.. > vaporized < (not the people..;-)
- [ Im KlarText: wenn ein Transfer-Abbruch stattfand, gingen diese zwei
- Proggies in eine hübsche Endlos-Schlaufe, weil sie dummerweise
- JEDESMAL einen Abbruch signalisierten anstatt nur einmal..)-: ]
-
- - v1.80
- - there was a little error in doc. YMODEM command mode character
- isn't 'M' , it's 'Y' sorry, Urs..
- - added new option: YMODEM -a
- it supports neither CRC nor Checksum and should only be used if
- there are ERROR-DETECTING AND -CORRECTING modems connected..!!
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- - v1.65
- - if there's no xpr_fnext(), YMODEM batch doesn't fall back
- in X- / YMODEM state anymore..
- - killed dirty enforcer-hit in XPr-Setup
- - YMODEM-g now stops upload when receiving CAN/CAN ( NOT standard..!! )
- - YMODEM-g now tests chkabort(), too
- - YMODEM-g now aborts pronto if there occur some dirty errors
- - some code optimations included
- - some incompatibilities excluded
-
- - v1.01
- - better outfit
- - chkabort() implemented
-
- - v1.00
- - first release
-
-
-
-
- technical datas about YMODEM:
- - it is an amiga'ized version! It is definetly NOT gronking around
- with single byte reads n' writes or these lame getc() and putc()..!!!!
- - it will allways send in binary mode..
- - it will use a 16384 bytes internal serial input buffer..
- - it will use a 8192 bytes internal IO buffer for file handling..
-
-
-
- Enough chatting..
-
-
- Configurable options are:
- YMODEM mode: Y<S|B|G|A>
- ------------
- - 'X- / YMODEM': you can use this YMODEM as XMODEM, too! YS
- NOTE:
- YMODEM is fully compatible with XMODEM, so you can use this
- XPr-Y as XPr-X, too.. Ist das nicht Pfanni..(-;
-
- - 'YMODEM batch': the real one & only YMODEM implementation.. YB
-
- - 'YMODEM -g': for those people wanting good troughput YG
- this mode uses 1 kB blocks and CRC-16
-
- - 'YMODEM -a': for those people wanting best troughput avalaible.. YA
- this mode uses 2 kB blocks and it does
- no CRC-checking, because this is already
- done by the modems.. [ hail, hail HST..(-; ]
-
- NOTE:
- -----
- 'YMODEM -g' and 'YMODEM -a' work like YMODEM batch, they just
- don't send an ACK for received blocks and they can't handle
- CRC-16 or Checksum errors..
- they should only be used by people with highspeed error-detecting and
- error-correcting modems..!! [ ie: US-Robotics HST, etc. ]
-
-
- by default YB
-
-
- --------------------------------------------------------------------------
-
- CHOP option: Z<1|0>
- ------------
- - when enabled, XPrYmodem will chop files ONLY, if the filesize is
- unknown.. you can allways enable this option..
-
- NOTE: PAD-out char: '\Z' and *NOT* '\0' like xprxmodem.library does..
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- by default enabled
-
- --------------------------------------------------------------------------
-
-
- OUTPUT option: O<dir>
- --------------
- - this specifies the output directory for received files..
-
- by default RAM:
-
- --------------------------------------------------------------------------
-
- CRC option: C<1|0>
- -----------
- - when enabled, XPrYmodem will use CRC-16 for error-checking, else
- it will use Checksum...
-
- by default enabled
-
- --------------------------------------------------------------------------
-
- 1kB Blocks: B<1|0>
- -----------
- - when enabled, XPrYmodem will use 1024 bytes data blocks, else 128 bdb's
-
- by default enabled
-
- --------------------------------------------------------------------------
-
- This can be overridden by a environment variable, "XPRYMODEM", containing
- a setup string, of the following format:
- NOTE: this works only, if the comm progi supports it..
-
-
- these options are seperated by commas. The first character of every field
- is the type, one of:
- B (1k blocks), C (crc), M (YMODEM mode), O (output), Z (chop).
-
- The second char is either 1 or 0, expressing the boolean state of the
- option.
- examples:
-
- Z0,C1,B1 --> chop disabled, crc on, 1k blocks
-
- Z1,C0,B0 --> chop enabled, crc off (checksum), normal 128byte blocks,
-
- there are two special options:
- first char Y second char:
- S -> X- / YMODEM
- B -> batch
- G -> g mode (NOT g-spot..:-)
- A -> ARQ-mode
-
- first char O argument is the local output directory.. ie: Oram:t
-
- The user might also be prompted for such a string when XProtocolSetUp() is
- called, if the comm program does not provide the xpr_options callback
- function.
-
- Ueli Kaufmann..
-