home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / zmodem / mpmod154.zip / MPMODEM.DOC < prev    next >
Text File  |  1993-08-31  |  77KB  |  1,771 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.                              MPModem v1.54
  22.  
  23.  
  24.                         Implements Xmodem, Ymodem &
  25.                         Zmodem all in one package.
  26.  
  27.  
  28.                          (C) Copyright 1992,1993
  29.                            All rights Reserved.
  30.  
  31.                                 Mark Jose
  32.  
  33.  
  34.                 This manual is Copyright (C) 1992, 1993, M. Jose.
  35.  
  36.  
  37. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 1
  38.  
  39.  
  40.    Table of Contents
  41.    -----------------
  42.  
  43.    1.0   Terms and Conditions of use ................................ 2
  44.    1.1   Disclaimer ................................................. 3
  45.    1.2   License agreement .......................................... 3
  46.    2.0   MPModem: What does it do? .................................. 4
  47.    2.1   The MPModem Screen ......................................... 5
  48.    3.0   What equipment do I need? .................................. 8
  49.    3.1   Configuring MPModem with MPConfig .......................... 8
  50.    3.1.1    File Transfer Options Screen ............................ 9
  51.    3.1.2    General Setup Options Screen ............................ 15
  52.    3.1.3    Screen & Colours Setup .................................. 17
  53.    3.1.4    Save Configuration ...................................... 17
  54.    4.0   Running MPModem from DOS ................................... 18
  55.    4.0.1    Registered and BBS Users ................................ 22
  56.    5.0   File Formats ............................................... 24
  57.    5.0.1    Input File .............................................. 24
  58.    5.0.2    Log file format ......................................... 24
  59.    5.0.3    Report file format ...................................... 25
  60.    6.0   Future Enhancements ........................................ 26
  61.    7.0   Messages ................................................... 27
  62.    7.0.1    System Messages ......................................... 27
  63.    7.0.2    Report File Messages .................................... 36
  64.    8.0   Acknowledgements ........................................... 38
  65.    9.0   Errors or Omissions ........................................ 39
  66.    9.1   Other things ............................................... 39
  67.  
  68. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 2
  69.  
  70.  
  71.    1.0  Terms and Conditions of Use.
  72.    ---------------------------------
  73.  
  74.  
  75.    This program is freeware and as such the author retains full
  76.    copyright over the contents of this file and all files written
  77.    by the author.
  78.  
  79.    The author encourages you to distribute this program to any
  80.    person or persons you wish so long as the contents thereof are
  81.    unaltered in any way other than the form of archiver or
  82.    compressor used. The author supports the use of the LHA group
  83.    of compressors and archivers. See "License agreement" for more
  84.    details and specifics.
  85.  
  86.  
  87.  
  88. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 3
  89.  
  90.    1.1  Disclaimer
  91.    ---------------
  92.  
  93.    This product is provided to you "as is". There is no warranty either
  94.    expressed or implied applicable to this program or any other utility or
  95.    program produced by the author. Use of this program is at your own risk
  96.    and as such the author is not liable for any damages or loss of profits
  97.    resulting either directly or indirectly from your ability to correctly
  98.    or incorrectly use the said products.
  99.  
  100.  
  101.    The author makes no warranty that this program and all associated
  102.    programs are fit for any particular purpose. Any implied warranty of
  103.    merchantability is expressely and specifically denied.
  104.  
  105.    By using this program, its associated programs and documentation you
  106.    agree to the above conditions as outlined in sections 1.0 and 1.1
  107.    respectively.
  108.  
  109.  
  110.    1.2  License agreement
  111.    ----------------------
  112.  
  113.  
  114.    You are granted a license to use this product for whatever reason
  115.    you see fit. Under no circumstances do you own this product.
  116.    Although it is free to you, it is NOT Public Domain - it is
  117.    copyrighted by Mark Jose and shall remain so.
  118.  
  119.    You may distribute this program in unmodified form which includes all
  120.    programs, documentation, data and other files.
  121.  
  122.  
  123.    You may not include the product with any other product for any reason
  124.    whatsoever and you may not charge or elicit payment of any kind for the
  125.    copying or transfer of this program for other people to evaluate other
  126.    than to recoup the costs of the media that contains this product.
  127.    There are exclusions to this:
  128.  
  129.  
  130.         If you first contact me, I MAY allow you to include this
  131.         program with other packages like CD-ROM software
  132.         collections and so on. In which case, terms can be
  133.         negotiated.
  134.  
  135.  
  136.  
  137.    All Bulletin Board operators may allow the downloading of this product
  138.    providing the Bulletin Board is not engaged in trading for profit and/or
  139.    repackaging software in any form other than the original form of this
  140.    product and all its accompanying articles and products and is not
  141.    charging users of their Bulletin Boards a specific fee to download this
  142.    product.
  143.  
  144.  
  145.    If you are uncertain of your obligation under the law either desist from
  146.    using this product or obtain legal opinion.
  147. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 4
  148.  
  149.  
  150.  
  151.    2.0  MPModem: What does it do?
  152.    ------------------------------
  153.  
  154.  
  155.    MPModem implements 3 main protocols, these being Xmodem, Ymodem and
  156.    Zmodem. It also implements a further derivative of Xmodem, Xmodem with
  157.    1024 byte blocks (the normal is 128 bytes) as well as Ymodem-G, a full
  158.    streaming non-error-correcting protocol derived from Ymodem.
  159.  
  160.  
  161.    The implementation of Ymodem is not just simply Xmodem with 1k (1024
  162.    byte) blocks and a filename header but rather it is the "real" Ymodem
  163.    which can take varying sized (128/1024 byte) blocks, transfer files
  164.    without padding and preserves the file date and time.
  165.  
  166.    Zmodem is the evolution of X/Ymodem to a more flexible protocol. It has
  167.    the ability to resume a previously aborted transfer and is very rigid
  168.    when dealing with noisy lines (though not perfect). It also supports
  169.    Turbo-style (Fast) file transfers.
  170.  
  171.    At present it supports RemoteAccess BBS and will in future support
  172.    many more, especially Australian produced bulletin board programs.
  173.  
  174.    My implementation of Zmodem is the same as that of other authors of
  175.    Zmodem with the major exception that it allows the transfer of files
  176.    from systems like the Macintosh (tm), Apple (tm), Unix (tm), BSD (and
  177.    its various connotations) without causing problems with filenames and
  178.    MacBinary headers (when it is a MFS). This system is called "Filename
  179.    Integration" and is copyrighted by me.
  180.  
  181.    MPModem uses fully buffered interrupt driven serial output and input
  182.    for optimum throughput and is optimised to give you the very best in
  183.    protocol handling. It uses a minimum of memory and will run quite
  184.    well in less than 100k of memory (providing you don't use a large
  185.    disk buffer).
  186.  
  187.    It is optimised to work well under Desqview (tm) and has built in
  188.    facilities to change the method of screen writing (for the benefit
  189.    of other less well behaved multi-taskers).
  190.  
  191. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 6
  192.  
  193.  
  194.   2.1  The MPModem Screen.
  195.   ------------------------
  196.  
  197.  
  198.      ┌──────────────────────────────────────────────────────────────────┐
  199.      │                        Zmodem Receive   (1)                      │
  200.      ├──────────────────────────────────────────────────────────────────┤
  201.      │ Pathname:  (2)                                                   │
  202.      │ Filename:  (3)                                                   │
  203.      │                                                                  │
  204.      │ Check Type   : CRC-16    (4)     Blocks Expected:      (11)      │
  205.      │ Error Count  :           (5)     Blocks Received:      (12)      │
  206.      │ Last Frame   :           (6)     Approx. Cps    :      (13)      │
  207.      │                                                                  │
  208.      │ Transfer Time:           (7)     Bytes Expected :      (14)      │
  209.      │ Elapsed Time :           (8)     Bytes Received :      (15)      │
  210.      │                                                                  │
  211.      │ Messages:                                                        │
  212.      │  Initializing file transfer.  (9)                                │
  213.  (10)│(16)(17)(18)(19)(20)(21)(22)(23)  (24)       (25)             (26)│
  214.      ├───┬───┬───┬───┬───┬───┬────┬────┬────┬────────────────────────┬──┤
  215.      │LOG│BIN│CAR│MOD│   │   │    │    │    │Space: 3241984     bytes│ 5│
  216.      ├───┴───┴───┴───┴───┴──┬┴────┴────┴────┴────────────────────────┴──┤
  217.      │Serial No. 0000000 (27)Reg. To:  UNREGISTERED    (28)             │
  218.      ├────────────┬─────────┴─────────────────────────────┬─────────────┤
  219.      │   (29)     │  MPModem (C) Copyright 1992, M. Jose  │   1.00  (30)│
  220.      └────────────┴───────────────────────────────────────┴─────────────┘
  221.  
  222.    [Registered users will see a slightly different screen]
  223.  
  224.  
  225.    (1)    The type of transfer about to take place.
  226.  
  227.    (2)    The "Pathname" is the path to the upload or download directory.
  228.  
  229.    (3)    The "Filename" is the name of the file currently being received
  230.           or sent.
  231.  
  232.    (4)    "Check Type" is the type of block checking that is relevant to
  233.           the particular transfer type you have selected. With Zmodem the
  234.           type of checking is either CRC-16 or CRC-32. With Xmodem and or
  235.           Ymodem the checking is either checksum or CRC-16.
  236.  
  237.    (5)    "Error Count" is the total number of errors so far encountered
  238.           while performing this file transfer. If Zmodem reaches about 14
  239.           errors it will abort.
  240.  
  241.    (6)    "Last Frame" is only relevant to Zmodem. This basically displays
  242.           the last packet type that was received by Zmodem.
  243.  
  244.    (7)    This field will display "Transfer Time" if you are
  245.           receiving/downloading a file and will display "Time Left" is you
  246.           are sending/uploading a file.
  247.  
  248.    (8)    "Elapsed Time" is the total amount of time so far taken to
  249.           receive or send the file.
  250.  
  251.    (9)    This field displays any error and system messages.
  252. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 7
  253.  
  254.    (10)   Directly under the error and system messages field is the warning
  255.           message area. Generally this is only used to show the filename
  256.           that was transmitted before converting the filename to DOS
  257.           format. (See the "-m" switch).
  258.  
  259.    (11)   This field displays "Blocks Expected" when receiving/downloading
  260.           files or "Blocks To Send" when sending/uploading files. This
  261.           field is only used when sending with Xmodem or Ymodem and
  262.           receiving files with Ymodem.
  263.  
  264.    (12)   This field displays "Blocks Received" when receiving/downloading
  265.           files or "Blocks Sent" when sending/uploading files. This field
  266.           is used when sending or receiving using Xmodem or Ymodem
  267.           protocols.
  268.  
  269.    (13)   "Approx. Cps" is an approximate Characters Per Second rate when
  270.           transferring files. Please note that because of internal
  271.           buffering when tsending files, the CPS rate may seem too high for
  272.           the baud rate selected.
  273.  
  274.    (14)   This field displays either "Bytes Expected" when
  275.           receiving/downloading files or "Bytes To Send" when
  276.           sending/uploading files. When sending files with any protocol
  277.           this will always contain the size of the file regardless of the
  278.           protocol used. When receiving files, an amount will only be shown
  279.           if you are using Ymodem or Zmodem.
  280.  
  281.    (15)   This field displays either "Bytes Received" when
  282.           receiving/downloading files or "Bytes Sent" when
  283.           sending/uploading files. An amount of bytes will be shown as the
  284.           file transfer progresses to show how far the file transfer has
  285.           progressed.
  286.  
  287.  
  288.    (16)   If "LOG" appears in this frame then the current transfer is being
  289.           logged to the file "MPMODEM.LOG". To enable this function, ensure
  290.           that the "-l" switch is part of the command line. (See "-l" for
  291.           more information).
  292.  
  293.    (17)   If "BIN" appears this means that the current Zmodem (only)
  294.           transfers is being transferred in binary mode. To override this
  295.           (keeping in mind the ramifications of such action), you may
  296.           specify the "-a" switch on the command line. (See "-a" for more
  297.           information).
  298.  
  299.    (18)   If "CAR" appears this means that the carrier is currently being
  300.           monitored. This means that as soon as the carrier is found to
  301.           have been lost the program will finish the transfer. To activate
  302.           this option, select the "-c" command line switch. (See "-c" for
  303.           more information).
  304.  
  305.    (19)   If "MOD" is displayed this means that ALL incoming files are
  306.           checked and modified to DOS standards. This is handy when
  307.           transferring files from a Macintosh or other "strange" naming
  308.           convention site. (See "-m" for more details).
  309. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 8
  310.  
  311.    (20)   This box is blank.
  312.  
  313.    (21)   If we are running in fast mode (some implementations call it
  314.           Turbo) then it will contain the letter "F".
  315.  
  316.    (22)   If "KILL" appears in this box while receiving a file then this
  317.           means that if the transfer is aborted and the file not properly
  318.           recieved then that file will be deleted. If it appears while
  319.           sending then this indicates that after the successful completion
  320.           of the transfer, this file will be deleted off your disk.
  321.  
  322.    (23)   This is the current block or packet size of the transfer. With
  323.           Xmodem it is always 128 (bytes), with Xmodem-1k it is always
  324.           1024, with Ymodem and Ymodem-G it can be 128 and/or 1024, and
  325.           with Zmodem it can be from 32 to 1024 bytes.
  326.  
  327.    (24)   Blank.
  328.  
  329.    (25)   This is the current amount of free bytes left on the disk where
  330.           the recieval of the file is going to. It is not perfectly
  331.           accurate until the whole file has been received since it does not
  332.           take into account the amount of disk space taken for directory
  333.           entries etc. It is merely there to give you an indication of disk
  334.           space. If you use a multi-tasker then the figure may be wrong
  335.           until the next file is started and a physical read of disk space
  336.           takes place.
  337.  
  338.    (26)   This is the current time out value in seconds. This time dictates
  339.           how long the transmitter or receiver routines will wait before
  340.           giving up and issuing an error message.
  341.  
  342.    (27)   This is the serial/registration number of this version of the
  343.           program. Nothing will appear in here UNTIL you register your
  344.           version of the program.
  345.  
  346.    (28)   This field is allocated for your name when you register your copy
  347.           of this program. If you have not registered, the field will flash
  348.           with the word "UNREGISTERED" which is a subtle reminder for you
  349.           to register your version. Please do so.
  350.  
  351.    (29)   This is the version number of the remote user. It is generally not
  352.           used by other Zmodem programs other than RZ/SZ on Unix (tm) machines.
  353.  
  354.    (30)   This is the version number of the local user. When you are
  355.           registered and you have a problem, remember to cite your version
  356.           number when seeking assistance.
  357.  
  358. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 9
  359.  
  360.   3.0  What equipment do I need?
  361.   ------------------------------
  362.  
  363.    You need the bare minimum configuration of PC equipment which comprises
  364.    a PC, PC/XT, PC/AT, PS2 and so on up the scale.
  365.  
  366.    You require at least 256k of memory or much more if you are running this
  367.    from a BBS. As well you will require a COM1: or COM2: serial output
  368.    which has an 8250, 16450 or 16550 chip.
  369.  
  370.  
  371.   3.1  Configuring MPModem with MPConfig
  372.   --------------------------------------
  373.  
  374.    In order to streamline the usage of MPModem, there is a facility
  375.    available to preconfigure MPModem using a program called MPConfig. This
  376.    program allows you set most "options" and thus never have to change them
  377.    during the normal course of running the program.
  378.  
  379.  
  380.    Open invoking MPConfig, you are presented with a screen:
  381.  
  382.  
  383.                        ╔═══╡ Configuration Menu ╞═══╗
  384.                        ║                            ║
  385.                        ║    File Transfer Options   ║
  386.                        ║    General Setup Options   ║
  387.                        ║    Screen & Colours Setup  ║
  388.                        ║    Save Configuration      ║
  389.                        ║                            ║
  390.                        ║                            ║
  391.                        ║                            ║
  392.                        ║                            ║
  393.                        ║                            ║
  394.                        ╠════════════════════════════╣
  395.                        ║           MPModem          ║
  396.                        ║   Copyright (C) 1992, v1.1 ║
  397.                        ║         M. Jose          ║
  398.                        ╚════════════════════════════╝
  399.  
  400.    This is the "master menu". Here you select the option you would like by
  401.    pressing the Up or Down arrow keys. Once the menu bar (it will highlight
  402.    the text) is over the required option, press the [Enter] key to enter
  403.    that sub menu.
  404. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 10
  405.  
  406.   3.1.1  File Transfer Options Screen
  407.   -----------------------------------
  408.  
  409.    The following is the screen which is displayed when you select the "File
  410.    Transfer Options" off the master menu:
  411.  
  412.      ╔════════════════════════════╡File Transfer Options╞═════════════════╗
  413.      ║                                                                    ║
  414.      ║   Always monitor Carrier during transfers?.............  N         ║
  415.      ║   Delete a failed transfer?   (Receiving)..............  N         ║
  416.      ║   Allow remote to execute programs/commands?...........  N         ║
  417.      ║   Use XON/XOFF software flow control?..................  N         ║
  418.      ║   Use CTS/RTS hardware flow control?...................  N         ║
  419.      ║   Delete file after transfer?  (Sending)...............  N         ║
  420.      ║   Always log file transfers?...........................  Y         ║
  421.      ║   Modify filenames when receiving files?...............  N         ║
  422.      ║   Generate timeout values according to Baud rates?.....  Y         ║
  423.      ║   Use BIOS when writing to the screen?.................  Y         ║
  424.      ║   Force the sender to resume if necessary?.............  N         ║
  425.      ║   Force the sender to resume with CRC check?...........  N         ║
  426.      ║   Run this program from a BBS?.........................  N         ║
  427.      ║   Allow creation of a unique name? (BBS only)..........  N         ║
  428.      ║   Blank................................................  N         ║
  429.      ║   Always Escape all control characters? (Zmodem only)..  N         ║
  430.      ║   Use current Comm. port settings for Baud rate?.......  N         ║
  431.      ║   Always scan for duplicate files. (BBS Receive only)..  N         ║
  432.      ╟────────────────────────────────────────────────────────────────────╢
  433.      ║Esc: Exit, : Move                   MPModem Configuration (C) Copy║
  434.      ╚════════════════════════════════════════════════════════════════════╝
  435.  
  436.    Now follows an explanation of all the configuration questions.
  437.  
  438.    Always Monitor Carrier during transfers?
  439.          Selecting "Y" will result in MPModem quitting the current transfer
  440.          if it detects the loss of carrier. For those modems that do not
  441.          force carrier high, do not use this switch but rely on the "timing"
  442.          capabilities of the program to know when a connection is lost. That
  443.          is, continual timeouts by X/Y/Zmodem will cause it to abort.
  444.          (See Timeout for more details).
  445.  
  446.          If you only want to occasionally monitor carrier, then do not
  447.          annswer Y here but specify "-c" on the command line when you want to
  448.          monitor carrier.
  449.  
  450.    Delete a failed transfer?   (Receiving)
  451.  
  452.           If you answer "Y" to this question, MPModem will DELETE any failed
  453.           transfer. This option is especially useful for BBS operators who do
  454.           not want their disk crowded with partially received files.
  455.  
  456.           The default is 'N'.
  457. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 11
  458.  
  459.  
  460.    Allow remote to execute programs/commands?
  461.  
  462.          Answering "Y" will allow Zmodem to receive commands from the
  463.          receiver requesting that certain commands be done. For example,
  464.          MPModem can be made to execute another program or even run a
  465.          batch file. It can be made to execute a command and then return
  466.          back to the program or it can be made to overwrite the current
  467.          program in memory with another program specified by the remote.
  468.  
  469.          This is a potentially powerful and dangerous option and should
  470.          only be activated when you have 100% confidence in the remote
  471.          user. Generally only users on Unix machines will have access to
  472.          this ability.
  473.  
  474.          It executes the unix command of "SH" for shell. If you want the
  475.          equivalent for DOS then check your local BBS for one and rename it
  476.          as "SH" and place it in your MpModem directory.
  477.  
  478.          The default is 'N'.
  479.  
  480.                     (This is not available to unregistered users)
  481.  
  482.    Use XON/XOFF software flow control?
  483.  
  484.           When a protocol is being "flooded" by characters, it is
  485.           sometimes necessary to say to the other end "Hey! Wait for me".
  486.           To perform this, we send an XOFF which tells the remote to stop
  487.           sending data until we send the matching XON. If this is what
  488.           you need and CTS/RTS flow control is not available then answer
  489.           "Y" to this question.
  490.  
  491.           It is recommended that you ensure that your modem is set up to
  492.           allow XON/XOFF flow control.
  493.  
  494.           This option only really serves a purpose if you are running
  495.           under a multi-tasking system where all the CPU time cannot be
  496.           allocated to one task for a continual enough time.
  497.  
  498.           Please Note:  Because the Xmodem/Ymodem protocols do not handle
  499.           XON/XOFF flow control, this ability will be disabled even if you
  500.           have answered "Y". The only protocol XON/XOFF works with is Zmodem.
  501.  
  502.           It is NOT RECOMMENDED that you use this method of flow control. If
  503.           flow control is needed and your modem can do flow control then
  504.           using CTS/RTS flow control is the preferred method.
  505.  
  506.           The default is 'N'.
  507. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 12
  508.  
  509.  
  510.    Use CTS/RTS hardware flow control?
  511.  
  512.           Answer "Y" here to use CTS/RTS flow control. Originally this type
  513.           of control was designed for half-duplex modems where the change in
  514.           signal would cause the modem to swap from being a receiver to being
  515.           a transmitter. Now it is more commonly used with speed buffered
  516.           modems (with say, a connect rate of 9600 and a DTE rate of 19200).
  517.  
  518.           To prevent the modem from skipping data, the modem's RTS pin's
  519.           voltage is lowered to tell the local DTE that we must pause,
  520.           until RTS is again asserted, before sending any more data.
  521.  
  522.           If you have speed buffering, MNP or LAP/M then make sure CTS/RTS
  523.           flow control is enable on the modem and also through the program.
  524.  
  525.           The default is 'N'.
  526.  
  527.  
  528.    Delete file after transfer?  (Sending)
  529.  
  530.           Answering 'Y' will mean that after each successful SENDING of a
  531.           file, that file will be deleted off your disk. This is especially
  532.           handy for people who are sending one off files that are no longer
  533.           needed on the host machine.
  534.  
  535.           The default is 'N'.
  536.  
  537.  
  538.    Always log file transfers?
  539.  
  540.           It is suggested that you leave this as 'Y' (Log always on) as
  541.           important information is placed in the log. For Sysops, it is
  542.           MANDATORY in order for their supported board to work properly.
  543.  
  544.           The default is 'Y'.
  545.  
  546.  
  547.    Modify filenames when receiving files?
  548.  
  549.           If you are always receiving files from a Macintosh source or you
  550.           are a Sysop who thinks he may receive files from a Macintosh
  551.           source, then answer 'Y' to this question.
  552.  
  553.  
  554.           For example, a file transferred from a Macintosh (tm) machine
  555.           may be called:
  556.                             Some Macpaint Pics.cpt
  557.  
  558.           with this switch active, the filename would be converted to
  559.           "Some_Mac.cpt".
  560.  
  561.           Although this option is only really useful when transferring files
  562.           from a Macintosh (R) system to DOS you should still answer "Y" here
  563.           just in case you ever receive a file from a Macintosh user.
  564.  
  565.           Any non-standard MS/PC Dos format (even Unix and Amiga) will be
  566.           converted to DOS format.
  567.  
  568.           The default is 'N'.
  569. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 13
  570.  
  571.  
  572.    Generate timeout values according to Baud rates?
  573.  
  574.           Answering "Y" to this question will make MPModem calculate the value
  575.           (in seconds) required for timeout handling according to the BPS rate
  576.           (not the BAUD rate). Thus the faster the connection speed the shorter
  577.           the timeout value.
  578.  
  579.           The absolute minimum timeout value is 5 seconds and the maximum is
  580.           around 50 seconds for a 300 BPS connection.
  581.  
  582.  
  583.    Use BIOS when writing to the screen?
  584.  
  585.           Answer "Y" to this if you are always running under a multi-tasking/
  586.           multi-window environment where "bleed-through" is not desirable.
  587.           Although the screen writes are some degree slower if you answer "Y",
  588.           it is better than "bleed-through" to the other screen if you
  589.           answer "N".
  590.  
  591.           If running Desqview then you may use "Y" for direct screen writes
  592.           as this program is very well behaved when used with Desqview and
  593.           it will speed up screen writing.
  594.  
  595.           The default is 'N'.
  596.  
  597.    Force the sender to resume if necessary?
  598.  
  599.           This affects Zmodem file transfers only!
  600.           This is the same as the "-x" switch.  IF you are running a BBS
  601.           then make sure that you answer 'N' to this question. To all other
  602.           users, it is recommended that if you receive files from a
  603.           Macintosh system where the filename is renamed that you also
  604.           answer 'N'. The reason why is:
  605.  
  606.              Suppose you want to receive two files from a Macintosh system
  607.              called "GeneralText.Word" (size 25067) bytes and another file
  608.              called "GeneralTestAns.Word" (size 15460) bytes. With the "-m"
  609.              switch specified the first filename will be renamed as
  610.              "GENERALT.WOR". When you receive the second filename, it too
  611.              will be renamed to "GENERALT.WOR". If you force the sender to
  612.              resume, it will try to resume at 25067 bytes (the original
  613.              size of "GeneralText.Word"). As you can see this is past the
  614.              total file size of the incoming file "GeneralTestAns.Word".
  615.              Improperly written Zmodem drivers will seize up at this and at
  616.              the very least the first file "GeneralText.Word" will be
  617.              truncated and overwritten.
  618.  
  619.           Generally, the author encourages ALL users to leave this switch
  620.           as 'N' unless they are absolutely certain they realise the
  621.           consequences of their actions.
  622. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 14
  623.  
  624.    Force the sender to resume with CRC check?
  625.  
  626.           This is the same as answering "Y" to "Force the sender to resume if
  627.           necessary" (see above), however this causes Zmodem to first do a
  628.           CRC check of the file (or the part thereof) to ensure that the file
  629.           is the correct one to resume with.
  630.  
  631.           Do NOT use this switch if you are running MPModem under a BBS.
  632.  
  633.           [A bug in its implementation with some protocols has led to the]
  634.           [withdrawal of this facility from this version. A fix will be  ]
  635.           [released soon, my apologies. MJ.                              ]
  636.  
  637.    Run this program from a BBS?
  638.  
  639.           This switch is the same as the "-!" switch. Answer 'Y' to this
  640.           question if and only if you are running this program from a BBS
  641.           such as RemoteAccess. The default is 'N'.
  642.  
  643.    Allow creation of a unique name?  (BBS only)
  644.  
  645.           When receiving files it is sometimes necessary to create a unique
  646.           filename if the incoming file has the same name as an existing
  647.           file.
  648.  
  649.           For example, suppose we had a file called "frednurk.zip". If the
  650.           incoming file is "frednurk.zip" but is a different size than the
  651.           "frednurk.zip" we have on our system then the incoming file is
  652.           received as "frednurk.zi1".
  653.  
  654.           Under normal circumstances this is not desirable when running
  655.           under a BBS as this would allow people to upload a file that is
  656.           already in existance.
  657.  
  658.           The default is "N".
  659.  
  660. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 15
  661.  
  662.    Escape all control characters? (Zmodem only)
  663.  
  664.           If you are to use Zmodem to send to a remote site through a network
  665.           that does not accept the full IBM character set of 0 to 255 decimal,
  666.           and thus only supports A-Z, a-z and characters like %$#@!*&^, then
  667.           answer "Y" to this question. This will cause all control characters
  668.           and extended ascii characters to be converted to a character
  669.           acceptable by the network or computer you are sending to or
  670.           receiving from. Using this method will cause the program to run
  671.           slower as it has to encode such characters which adds 50% to the
  672.           overhead of the program.
  673.  
  674.    Use current Comm. port settings for Baud rate?
  675.  
  676.           Answer "Y" to this if you are running MPModem under a BBS or some
  677.           program that does not report the actual connect rate. Some BBS
  678.           (like RemoteAccess) report only the carrier speed which may differ
  679.           if speed buffering for MNP or LAP/M is active. For example, you
  680.           may connect with a CARRIER speed of 9600 but a CONNECT speed of
  681.           19200. MPModem requires the CONNECT speed rather than the CARRIER
  682.           speed.
  683.  
  684.           If you are having trouble running MPModem - when you select it
  685.           you get garbage appear on the screen - then answering "Y" to
  686.           this option will rectify the problem (if it has to do with
  687.           invalid BAUD rates!)
  688.  
  689.    Always scan for duplicate files. (BBS Receive only).
  690.  
  691.           When this option is set to Y, MPModem will scan your FILES.RA (it
  692.           only applies for RemoteAccess at the moment), and try to ascertain
  693.           whether the file that is about to be received (uploaded by the
  694.           user) is not already on the file base.
  695.  
  696.           This option is necessary for total file security on a BBS but may
  697.           disadvantage some users whereby the incoming file is from a
  698.           non-DOS compatible machine and is modified to the standard DOS
  699.           filename.
  700.  
  701.           Likewise a BBS that stores files on its system from another system
  702.           (Amiga or Mac), then the DOS filenames will not (generally)
  703.           correspond to the "true" filename.
  704.  
  705.           If you are running such a board, then I would suggest that you
  706.           keep this option set to "N". It will also speed up the time Zmodem
  707.           takes to start a file transfer. This option does not apply to
  708.           Ymodem, yet.
  709. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 16
  710.  
  711.   3.1.2  General Setup Options Screen
  712.   -----------------------------------
  713.  
  714.    The following is the screen which is displayed when you select the
  715.    "General Setup Options" off the master menu:
  716.  
  717.  
  718.      ╔════════════════════════════╡General Setup Options╞═════════════════╗
  719.      ║                                                                    ║
  720.      ║   Enter size of Disk I/O Buffer. (1 to 20k)                  1     ║
  721.      ║   If running from a BBS, enter port number. (1 or 2)         0     ║
  722.      ║   Wait for user to ACK. (32 to 1024 bytes)                   0     ║
  723.      ║   Use sub-packets. (24 to 1024 bytes)                        0     ║
  724.      ║                                                                    ║
  725.      ║                                                                    ║
  726.      ║                                                                    ║
  727.      ║                                                                    ║
  728.      ║                                                                    ║
  729.      ║                                                                    ║
  730.      ║                                                                    ║
  731.      ║                                                                    ║
  732.      ║                                                                    ║
  733.      ║                                                                    ║
  734.      ║                                                                    ║
  735.      ║                                                                    ║
  736.      ║                                                                    ║
  737.      ╟────────────────────────────────────────────────────────────────────╢
  738.      ║Esc: Exit, : Move                   MPModem Configuration (C) Copy║
  739.      ╚════════════════════════════════════════════════════════════════════╝
  740.  
  741.  
  742.  
  743.    Enter size of Disk I/O Buffer. (1 to 20k)
  744.  
  745.           This allows you to specify the Disk Read/Write buffer and is the
  746.           equivalent to the "-f buffer_size" switch. Specifying a buffer of
  747.           around 2 to 4 will decrease the amount of disk writes. When
  748.           running a multi-tasking and/or multi-line BBS and you have plenty
  749.           of memory to spare set the buffer at anything from 10 upwards.
  750.  
  751.  
  752.    If running from a BBS, enter port number. (1 or 2)
  753.  
  754.           This is the same as specifying "-p{portno}" on the command line.
  755.           If you enter a port in here, this port will ALWAYS be used
  756.           regardless of what your communication or BBS program passes to
  757.           MPModem. Use this wisely.
  758. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 17
  759.  
  760.  
  761.    Wait for user to ACK. (32 to 1024 bytes)
  762.  
  763.           Entering a number in here (from 32 to 1024) will cause Zmodem to
  764.           work just like an ACK-type protocol such as Xmodem.
  765.  
  766.           What this does is cause Zmodem to create "frames" of the size you
  767.           specify to be sent before an ACK is required to be sent by the
  768.           remote system. For example,
  769.                           512
  770.           will result in an ACK being sent after every 512 bytes.
  771.  
  772.           If you do not wish to run Zmodem as an ACKed protocol, and thus
  773.           as a full streaming protocol, then do not enter a number in here.
  774.  
  775.    Use sub-packets. (24 to 1024 bytes)
  776.  
  777.           Entering a number (from 24 to 1024) in here will cause Zmodem to
  778.           use sub-packets of a certain length. For example,
  779.                          256
  780.           will result in sub-packets of 256 bytes being sent. Specifying a
  781.           number is especially useful if you expect the transfers to take
  782.           place under noisy conditions where error-recovery is optimised
  783.           by sending smaller packets.
  784.  
  785.           The tradeoff, however, is a higher overhead as smaller packets
  786.           require more data to be "wrapped around them" such as CRC check
  787.           bytes and header information.
  788.  
  789. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 18
  790.  
  791.  
  792.   3.1.3  Screen & Colours Setup
  793.   -----------------------------
  794.  
  795.    This screen allows you to change the colours of the various screens
  796.    used by MPmodem and its associated programs.
  797.  
  798.    If you don't have a colour monitor then this option is superfluous to
  799.    your needs.
  800.  
  801.  
  802.  
  803.      ╔════════════════════════════╡Screen & Colours Setup╞════════════════╗
  804.      ║                                                                    ║
  805.      ║                                                                    ║
  806.      ║                Screen Background colour                            ║
  807.      ║                Screen Borders                                      ║
  808.      ║                Field Names                                         ║
  809.      ║                Text & Data Info.                                   ║
  810.      ║                Status line                                         ║
  811.      ║                Message colour                                      ║
  812.      ║                Warning colour                                      ║
  813.      ║                Menu Bar colour                                     ║
  814.      ║                Menu text colour                                    ║
  815.      ║                                                                    ║
  816.      ║                                                                    ║
  817.      ║                                                                    ║
  818.      ║                                                                    ║
  819.      ║                                                                    ║
  820.      ║                                                                    ║
  821.      ║                                                                    ║
  822.      ║                                                                    ║
  823.      ╟────────────────────────────────────────────────────────────────────╢
  824.      ║Esc: Exit, : Move                   MPModem Configuration (C) Copy║
  825.      ╚════════════════════════════════════════════════════════════════════╝
  826.  
  827.  
  828.   3.1.4  Save Configuration
  829.   -------------------------
  830.  
  831.           Moving to this option and pressing [Enter] will cause the current
  832.           settings to be saved to a file called "MPMODEM.CFG". Ensure that
  833.           before you quit (unless you do not want to save your changes) that
  834.           you select this option.
  835.  
  836.  
  837. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 19
  838.  
  839.   4.0  Running MPModem from DOS
  840.   -----------------------------
  841.  
  842.    MPModem runs by specifying switches on the command line. Some of the
  843.    command line switches are optional but a few are mandatory such as the
  844.    Port, the Baud rate and the transfer type. Below are detailed a list of
  845.    the switches/options you may use with MPModem:
  846.  
  847.        Switch/
  848.        Option       Description
  849.        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  850.          -@         This causes Ymodem or Zmodem to obtain the list of
  851.                     filenames to send to the remote from a file. To use
  852.                     this you must follow this switch with the filename to
  853.                     use. E.g
  854.                         -@ input.fil
  855.  
  856.                     Note that there must be a space after the "-@" and then
  857.                     the filename. For more details of the make up of the
  858.                     input file to read from, see "Input File".
  859.  
  860.                     This switch is optional.
  861.  
  862.  
  863.          -a         When using Zmodem this forces the transfers to be made
  864.          -A         in Ascii (raw text) mode. Thus transfers from Unix or
  865.                     Macintosh sites will result in the LF converted to a
  866.                     CR/LF combination compatible with DOS.
  867.  
  868.                     Using this switch with a Binary file will result in
  869.                     unmentionable things happening to the file!
  870.  
  871.                     This switch is optional.
  872.  
  873.  
  874.          -b         This sets the baud rate. Immediately following the "-b"
  875.          -B         must be the baud rate. Currently, the baud rates
  876.                     supported are:
  877.                           300, 600, 1200, 4800, 9600, 19200,
  878.                           38400, 57600, 115200.
  879.  
  880.                     For example,
  881.                             -b9600
  882.                     will specify that the transfer is to take place at 9600
  883.                     baud. If you are running a v.42bis/LAPM/MNP modem at
  884.                     2400 baud or greater then it is imperative that the
  885.                     "CONNECT" speed is passed to MPModem, not the CARRIER
  886.                     speed. For example, connecting LAPM at 38400 must
  887.                     result in "-b38400" being passed to this program.
  888.  
  889.                     (Generally speeds in excess of 19200 require a fast XT
  890.                      or an AT and greater).
  891.  
  892.                     This switch is NOT optional.
  893. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 20
  894.  
  895.  
  896.          -f         Run Zmodem in fast mode. This greatly depends on the
  897.          -F         remote's ability to run Zmodem in non-standard mode.
  898.                     Programs such as PCZ work fine. DSZ does in some
  899.                     versions.
  900.  
  901.                     This switch is entirely optional.
  902. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 21
  903.  
  904.  
  905.          -p         Defines the port number. MPModem can operate from ports
  906.          -P         1 and 2. (See "Future Enhancements" for more details.)
  907.                     You must specify the port number (1 or 2) directly
  908.                     after the switch, eg.
  909.                               -p1
  910.                     will make MPModem run from Port 1 of your machine (the
  911.                     standard port).
  912.  
  913.  
  914.          -r         Causes MPModem to go into receive mode. You may specify
  915.          -R         5 individual protocols to use:
  916.  
  917.                           -rx     Receive Xmodem (128 byte packets)
  918.                           -ry     Receive Ymodem
  919.                           -rz     Receive Zmodem
  920.                           -rg     Receive Ymodem-G
  921.                           -rk     Receive Xmodem (1024 byte packets)
  922.  
  923.                     You MUST specify at least one of these commands on any
  924.                     command line if you are receiving files.
  925.  
  926.  
  927.          -s         Causes MPModem to go into send mode. You may specify
  928.          -S         5 individual protocols to use:
  929.  
  930.                           -rx     Send Xmodem (128 byte packets)
  931.                           -ry     Send Ymodem
  932.                           -rz     Send Zmodem
  933.                           -rg     Send Ymodem-G
  934.                           -rk     Send Xmodem (1024 byte packets)
  935.  
  936.                     You MUST specify at least one of these commands on any
  937.                     command line if you are sending files.
  938.  
  939.  
  940.          -t         This switch is used only by BBS operators. It enables
  941.          -T         sysops to see what time is left for the user while
  942.                     running MPModem. The sysop will specify this in his
  943.                     configuration setup for running MPModem as an external
  944.                     protocol.
  945.  
  946.  
  947.          -u         Use this switch ONLY when you are running MPModem from
  948.          -U         a BBS. Follow this switch with whatever option your BBS
  949.                     has for putting the Usernumber on the command line of an
  950.                     external protocol. For example, RemoteAccess allows you
  951.                     to put a user's number on the command line by entering
  952.                     the following:
  953.  
  954.                               -U*R
  955.  
  956.                     Thus MPModem can use this information to report on any
  957.                     suspicious activity by the user.
  958. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 22
  959.  
  960.          -v         This switch enables BBS operators only to specify the
  961.          -V         user's name on the command line. Generally if you want
  962.                     to use the entire name (first name and full name) then
  963.                     you must join the two names with an underscore (_).
  964.  
  965.                     For example, running RemoteAccess you may specify it
  966.                     as:
  967.                         -v*F_*L
  968.                     which will join the user's first name with his last
  969.                     name by an underscore.
  970.  
  971.          -w         Sound a "warble" when the program has finished doing
  972.          -W         its transfers. This facility is only available to
  973.                     registered users.
  974.  
  975.          -y         Put Zmodem into resume mode. If you have not specified
  976.          -Y         that you ALWAYS want Zmodem to try to resume a
  977.                     transfer (this is done via the configuration program)
  978.                     then specify this switch will allow you to resume
  979.                     files for the duration of this session only. This
  980.                     switch is preferable to the option in the
  981.                     configuration file because the configuration file
  982.                     option will ALWAYS force Zmodem to resume, even when
  983.                     you may not want it to.
  984. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 23
  985.  
  986.  
  987.   4.0.1  Registered and BBS Users
  988.   -------------------------------
  989.  
  990.    If you are a registered user or a BBS operator, then the screen will
  991.    differ from what unregistered users will see. At the very bottom of the
  992.    screen will appear a rectangle which will display the following
  993.    information:
  994.  
  995.          Registered User                       BBS User
  996.          ---------------------------------------------------------------
  997.          BBS Name connected to.                Current online user.
  998.          Baud rate (Connect rate)              Baud rate (Connect rate)
  999.          Time online so far                    Time remaining
  1000.  
  1001.    Registered User
  1002.    ~~~~~~~~~~~~~~~
  1003.      If you can pass to the program from your calling communications
  1004.      program like Telemate, Procomm or Telix the following information, the
  1005.      it will appear on the screen:
  1006.  
  1007.             -vBBSName
  1008.             -tTimeOnline
  1009.      "BBSName" is the name of the BBS you are currently calling.
  1010.      "TimeOnline" is the current amount of time you have been online.
  1011.  
  1012.      This information is ideal for allowing you to keep accurate track of
  1013.      where you are logged in and how much time you have spent on that
  1014.      board.
  1015.  
  1016.      Telix is able to pass (via a script - an example is enclosed) the
  1017.      name of the system you are connected to but not the time. It is
  1018.      therefore necessary to pass a value of 0, as in "-t0".
  1019.  
  1020.      The time value MUST be given in minutes, not seconds or hours.
  1021.  
  1022.      Other communication program may be able to do this and if so good,
  1023.      but Telix is my program of choice so I have not had time to
  1024.      experiment. If you write a script, then email it to me (DO NOT
  1025.      INCLUDE IT IN THE BUNDLE OF SOFTWARE CONTAINING MY PROGRAMS!) or send
  1026.      it to me via the Internet to speednut@werple.apana.org.au.
  1027.  
  1028.      Telemate (v3.10) allows you to create scripts but does not allow you
  1029.      to link these scripts to the receive/send menu. Consequently you can
  1030.      only use batch files to execute additional protocols.
  1031.  
  1032.      You can, however, directly execute the scripts (.SCR) included with
  1033.      this package by typeing ALT-S and selecting the relevant script.
  1034. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 24
  1035.  
  1036.  
  1037.    BBS User
  1038.    ~~~~~~~~
  1039.      To aid in the better monitoring of who is using your Board, I have
  1040.      included the additional status line. This line will display the
  1041.      current user online, the baud rate he connected at and the time
  1042.      remaining (in minutes).
  1043.  
  1044.      This should greatly assist BBS operators.
  1045.  
  1046.      You must be a registered user or Sysop in order to use this facility.
  1047.  
  1048. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 25
  1049.  
  1050.  
  1051.   5.0  File Formats
  1052.   -----------------
  1053.  
  1054.   5.0.1  Input File
  1055.   -----------------
  1056.  
  1057.    The format of the input file is quite simple. It must be in ASCII and
  1058.    each line must be less than 80 characters in length.
  1059.  
  1060.    A line is just plain text with a CR/LF combination at the end.
  1061.  
  1062.    An example of what an input file would look like is detailed below:
  1063.  
  1064.        c:\programs\hold\pibterm3.lzh
  1065.        mpmodem.exe
  1066.        c:\games\canasta.lzh
  1067.  
  1068.    There is no limit to how many files can appear in the file, it really
  1069.    only depends on how long you have to send all the files to the remote
  1070.    end.
  1071.  
  1072.  
  1073.  
  1074.   5.0.2  Log file format
  1075.   ----------------------
  1076.  
  1077.    The log file is made up of pure ASCII (decimal 32 to 127 inclusive) and
  1078.    thus can be read by any program or editor. The following is an example
  1079.    of the MPMODEM.LOG file:
  1080.  
  1081.          21-12-91  00:36:38  Zmodem Download
  1082.          21-12-91  00:36:38  Remote filename: Planets Movie.cpt
  1083.          21-12-91  00:54:59  Received: Planets_.cpt
  1084.          21-12-91  00:54:59  Bytes: 207534
  1085.          21-12-91  00:54:59  CPS: 1780
  1086.          21-12-91  01:01:20  Zmodem Upload
  1087.          21-12-91  01:03:24  Transmitted: QUICKTME.CPT
  1088.          21-12-91  01:03:24  Bytes: 765010
  1089.          21-12-91  01:03:24  CPS: 1970
  1090.  
  1091.    Each line of the log file begins with the date in DD-MM-YY format (there
  1092.    are no spaces before the date). Next follows two spaces then the time in
  1093.    the format of HH:MM:SS in 24 hour notation so that 22:10:12 is
  1094.    10:10:12pm. A further two spaces follow and then appears the type of
  1095.    download or upload, either "Transmitted:" or "Received:" , the number
  1096.    of bytes received and the CPS rate.
  1097.  
  1098. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 26
  1099.  
  1100.  
  1101.   5.0.3  Report file format
  1102.   -------------------------
  1103.  
  1104.    The report file is a pure ASCII file similar in appearance to the standard
  1105.    MPModem log file called "MPMODEM.LOG".
  1106.  
  1107.  
  1108.    The following is an example of what part of this file may look like:
  1109.  
  1110.      21-12-91  00:36:38  25 has received all of file MPMODEM.EXE
  1111.      21-12-91  00:36:38  25 has asked me to execute commands
  1112.  
  1113.    The "25" above refers to the user's number, and will only be displayed
  1114.    if you specify "-u" or "-U" on the command line followed by the BBS's
  1115.    code for a user number (see "-u" switch).
  1116.  
  1117.    The report file is used to report on strange occurrences during a file
  1118.    transfer. Some users have been known to abort the receipt of files just
  1119.    after the last bytes have been received and just before the End Of File
  1120.    packet has been sent. This then makes the BBS think that the file was not
  1121.    sent and thus this user's download amount is not adjusted. So, if a Sysop
  1122.    browses through this file he will immediately ascertain which users should
  1123.    be barred from using the file system or whatever.
  1124.  
  1125.  
  1126. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 27
  1127.  
  1128.   5.0  Future Enhancements
  1129.   ------------------------
  1130.  
  1131.    MPModem is by no means complete and will be continually updated to
  1132.    ensure registered users are able to use the most modern aspects of the
  1133.    protocols that make up the MPModem product.
  1134.  
  1135.  
  1136.    Some of the future enhancements are:
  1137.  
  1138.       *   Ability to handle more than ports 1 and 2. Initially support will
  1139.           only be given to the additional ports numbered 3 and 4 but
  1140.           eventually ports 5 to 8 will also be included.
  1141.  
  1142.       *   Extensions to Xmodem to allow it to send/receive in streaming
  1143.           mode (commonly called Xmodem-G or Xmodem-1k-G).
  1144.  
  1145.    It should be noted that Xmodem and Ymodem have reached their limit for
  1146.    expansion at the present time and thus the Zmodem transfer protocol will
  1147.    be the one that will be the focus of future enhancements.
  1148.  
  1149.  
  1150.          +-------------------------------------------------------+
  1151.          | Please also note that due to my own time constraints, |
  1152.          | it may be a long time before the above is done. That  |
  1153.          | is the main reason why I have made this software      |
  1154.          | FREEWARE - I simply can't justify asking people for   |
  1155.          | money without properly supporting the product.        |
  1156.          +-------------------------------------------------------+
  1157.  
  1158.  
  1159. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 28
  1160.  
  1161.   7.0  Messages
  1162.   -------------
  1163.  
  1164.  
  1165.   7.0.1  System Messages
  1166.   ----------------------
  1167.  
  1168.  
  1169.    Detailed below are all the major system messages that occur when using
  1170.    the MPModem product. Some are general messages or notices but most are
  1171.    error messages.
  1172.  
  1173.  
  1174.  
  1175.    Bad data CRC.
  1176.  
  1177.         While receiving data in either CRC 16 or 32 bit mode, MPModem the
  1178.         final CRC checking values did not agree with those sent by the
  1179.         sender. This can indicate two things, a very noisy line which is
  1180.         continually subjected to noise bursts or a badly designed sending
  1181.         program which may be experiencing transmitter overruns.
  1182.  
  1183.         If the problem always persists on the same connection, it may point
  1184.         to a software error in the sender's software otherwise it may just
  1185.         be a bad exchange or telephone line. Perhaps you should hang up and
  1186.         call back - after all Zmodem can resume transfers.
  1187.  
  1188.  
  1189.    Bad data subpacket.
  1190.  
  1191.         You are experiencing major problems where data is becoming grabled
  1192.         by either a lousy telecommunications line. Try hanging up and
  1193.         calling again. Maybe even cleans the contacts on the telephone
  1194.         socket and plug - it sometimes help. (Use a 600 grade sandpaper or
  1195.         better still Emery paper).
  1196.  
  1197.  
  1198.    Bad position.
  1199.  
  1200.         The current packet (just received) is not the next packet we wanted
  1201.         to receive so we will tell the remote and he SHOULD send us the
  1202.         correct packet. Too many of these errors will result in the "Too
  1203.         much garbage. I give up!" message appearing. See that error message
  1204.         for more details.
  1205.  
  1206.  
  1207.    Carrier Lost.
  1208.  
  1209.         When you specify the switch "-c" on the command line, MPModem will
  1210.         constantly monitor the carrier. If it drops out, it will close all
  1211.         open files and tidy up memory prior to exiting to DOS or returning
  1212.         back to the BBS. It causes the program to exit with a DOS
  1213.         errorlevel of 4.
  1214.  
  1215.  
  1216.    Data subpacket too long.
  1217.  
  1218.         Too much data has been received for this packet. Again, this points
  1219.         to a noisy line or faulty contacts. Perhaps someone just picked up
  1220.         the other extension and interfered with your call. Yell at them if
  1221.         that's the case!
  1222. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 29
  1223.  
  1224.  
  1225.    Data TIMEOUT.
  1226.  
  1227.         While receiving data from the sender, MPModem got tired of waiting.
  1228.         This can point to a slow remote system or a lazy network. Firstly
  1229.         investigate the possibility that the remote is slow before sticking
  1230.         your finger at the remote's network; It's harder to diagnose!
  1231.  
  1232.  
  1233.    Error: Carrier Lost.
  1234.  
  1235.         Zmodem has encountered a loss of carrier. This message will only
  1236.         appear when you specify the "-c" switch on the command line.
  1237.  
  1238.  
  1239.    Error: Garbage in header.
  1240.  
  1241.         See "Garbage count exceeded (Header)".
  1242.  
  1243.  
  1244.    Error: Received a garbled packet.
  1245.  
  1246.         Zmodem has received a data packet (part of the actual file
  1247.         transfer) that is garbage. It will discard this file as possibly
  1248.         corrupt.
  1249.  
  1250.  
  1251.    Error: Receiving ZCOMPL.
  1252.  
  1253.         Zmodem has continually received ZCOMPL (Zmodem has finished the
  1254.         file transfer) out of sequence. It may indicate that the remote is
  1255.         not ready for the files.
  1256.  
  1257.  
  1258.    Error: Remote Cancelled!
  1259.  
  1260.         Zmodem has received a cancel sequence by the remote and is now also
  1261.         ending the file transfer.
  1262.  
  1263.  
  1264.    Error: Strange characters received!
  1265.  
  1266.         Zmodem has encountered some irrecoverable error or errors when
  1267.         receiving a file. The transfer is obviously becoming far too
  1268.         "mutilated" by the telephone or network system.
  1269.  
  1270.  
  1271.    Error: Timeout.
  1272.  
  1273.         A timeout has been received. Please see "Timeout" for more details.
  1274.  
  1275. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 30
  1276.  
  1277.  
  1278.    Error:  Too many CRC errors!
  1279.  
  1280.         While Zmodem is receiving the file it has encountered too many CRC
  1281.         errors to be considered safe to continue the file transfer. If this
  1282.         continues to occur then email me and I may put a switch in so that
  1283.         you can specify the number of times it will allow for CRC errors
  1284.         during the file transfer. Currently it is about 15.
  1285.  
  1286.  
  1287.    Error: Too much garbage. I give up!
  1288.  
  1289.         Zmodem has given up trying to receive the file because it keeps
  1290.         receiving data packets with a different file position to that of
  1291.         the current file position. This may indicate that the sender is no
  1292.         longer receiving information.
  1293.  
  1294.  
  1295.    Error: Trying for ZCMD.
  1296.  
  1297.         Zmodem has given up trying to respond to the request for some
  1298.         action (command) to be taken by the remote program. This version of
  1299.         Zmodem can execute a command (such as another program) and then
  1300.         return back to Zmodem or it can execute a program that replaces
  1301.         Zmodem in memory. While trying to do one of these things, no
  1302.         response was received by the remote program.
  1303.  
  1304.  
  1305.    Error: Trying for ZFILE.
  1306.  
  1307.         Zmodem has given up trying to receive the file header. End of story
  1308.         and end of transfer. It is possible the remote end has dropped out
  1309.         or has failed to load their Zmodem program.
  1310.  
  1311.  
  1312.    Error: Trying for ZSINIT.
  1313.  
  1314.         Zmodem has given up trying to send an initialization sequence to
  1315.         the remote program. It is possible the remote end has dropped out
  1316.         or has failed to load their Zmodem program.
  1317.  
  1318.  
  1319.    Existing file cannot be overwritten.
  1320.  
  1321.         This indicates that the sending program is trying to send a file
  1322.         that is on your system as either Read-Only, Hidden or System. This
  1323.         could indicate that the remote is trying to upload a copy of the
  1324.         the system files or other types of protected file. If it is one of
  1325.         the system files, then maybe it was an attempt at sabotage!?!
  1326.  
  1327.         At any rate, the attempt has failed and that file will be skipped.
  1328.  
  1329. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 31
  1330.  
  1331.    File positioning error.
  1332.  
  1333.         While trying to move the disk pointer to another location within
  1334.         the file, an error was encountered and consequently the program
  1335.         could not reposition within a file. Generally this is a SERIOUS
  1336.         error as it indicates a problem in either the FAT tables or a
  1337.         problem with the actual media (hard or floppy disk).
  1338.  
  1339.  
  1340.    File transfer failed.
  1341.  
  1342.         Because of some reason the file transfer has failed. If you are
  1343.         concerned that file transfers are continually failing then read the
  1344.         documentation again and perhaps watch the transfer to see just what
  1345.         type of error messages appear during the file transfer.
  1346.  
  1347.  
  1348.    Garbage count exceeded (Header).
  1349.  
  1350.         While trying to receive a header packet, Zmodem has encountered too
  1351.         many errors. These errors are possibly due to a noisy line or
  1352.         indeed could be caused by a faulty modem or modem cable. Check that
  1353.         no earthing is occurring with the cable.
  1354.  
  1355.  
  1356.    Got bad Zmodem escape sequence.
  1357.  
  1358.         Zmodem "escapes" certain codes so that they aren't confused with
  1359.         other possible codes like XON/XOFF software flow control bytes. If
  1360.         Zmodem encounters a bad "escape sequence" that doesn't make sense
  1361.         to it, it will produce this error. Again this points more to a
  1362.         noisy or ineffective line than anything else.
  1363.  
  1364.  
  1365.    Interruption detected!  Trouble?
  1366.  
  1367.         Zmodem has received an interruption (some bytes from the remote -
  1368.         possibly a Cancel or Reposition command) and will attempt to
  1369.         rectify the problem.
  1370.  
  1371.         This problem can be caused by improperly designed transmitter
  1372.         hardware or software and can point to transmitter overruns. If this
  1373.         continually occurs and you are a registered user then contact me
  1374.         and I will endeavour to help you. Please site the type of chip you
  1375.         have (8250, 16450 or 16550) and any details you may have.
  1376.  
  1377.  
  1378.    Invalid block number. (?? tries)
  1379.  
  1380.         Xmodem, Xmodem-1k, Ymodem, Ymodem-G has continually tried to
  1381.         receive the next block number but each time it is invalid. The
  1382.         "??" is replaced by the number of attempts the program has made to
  1383.         try to obtain the correct block.
  1384.  
  1385. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 32
  1386.  
  1387.    Invalid chksum/crc.  (?? tries)
  1388.  
  1389.         Xmodem, Xmodem-1k, Ymodem, Ymodem-G has received an invalid
  1390.         checksum or CRC value. The "??" is replaced by the number of
  1391.         times we have received this invalid checksum or CRC value.
  1392.  
  1393.         If you are running Xmodem with checksum, you should consider
  1394.         changing/forcing the remote to run under CRC because checksum
  1395.         checking of a packet WILL NOT catch all errors and thus you could
  1396.         end up receiving a file that is corrupted!
  1397.  
  1398.  
  1399.    Invalid Binary Header CRC.
  1400.  
  1401.         This means that a corruption has occurred when receiving a header
  1402.         record in Zmodem. Generally it indicates a poor line. If it
  1403.         persists it could point to bad software design by the remote
  1404.         sending program.
  1405.  
  1406.  
  1407.    Invalid header received. (?? tries)
  1408.  
  1409.         Xmodem, Xmodem-1k, Ymodem, Ymodem-G has continually tried to
  1410.         receive a header from the remote sender. The "??" is substituted
  1411.         with the number of tries so far.
  1412.  
  1413.         Hang up and try again if it persists.
  1414.  
  1415.  
  1416.  
  1417.    Invalid Hex Header CRC
  1418.  
  1419.         The hex header (used when initiating file transfers) has
  1420.         encountered a CRC error in the header. This is due to line noise
  1421.         corrupting the individual bits in a file transfer. If you encounter
  1422.         too many of these errors you would be wise to hang up or abort the
  1423.         transfer and start again.
  1424.  
  1425.  
  1426.    Invalid response (??)
  1427.  
  1428.         When the sender (Xmodem, Xmodem-1k and Ymodem) have finished
  1429.         sending a block of information, they expect to receive a certain
  1430.         character from the receiver telling them what they should do next.
  1431.         When this message is returned it indicates that the program has
  1432.         recieved an invalid character. When the message is displayed, the
  1433.         "??" is replaced with the hexadecimal value of the character
  1434.         received.
  1435.  
  1436.         It means that some spurious character has been received. If it
  1437.         continues, the program will eventually abort.
  1438.  
  1439. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 33
  1440.  
  1441.  
  1442.    Local abort.
  1443.  
  1444.         You have pressed the "Esc" (Escape) key.
  1445.  
  1446.  
  1447.    No files to send!
  1448.  
  1449.         When you specify a wildcard (? or *) in a filename, eg fred*.*, and
  1450.         the program fails to find any files matching this description, it
  1451.         will announce that it has "no files to send" and will stop the
  1452.         transfer at this point.
  1453.  
  1454.  
  1455.    Remote cancelled!
  1456.  
  1457.         The remote sender or receiver has aborted or escaped out of the
  1458.         protocol and has told us to stop sending or receiving. Any file
  1459.         currently being transferred is close and the program ends.
  1460.  
  1461.  
  1462.    Remote filename:
  1463.  
  1464.         (This is NOT an ERROR message but rather a WARNING/NOTICE message).
  1465.  
  1466.         WHen you use the "-m" switch, MPModem will display the file it
  1467.         received from the remote prior to amending it so that it would fit
  1468.         within the parameters of a DOS file. For example, you may be
  1469.         receiving a file from a Macintosh system called:
  1470.                            Some Macpaint Pics.cpt
  1471.         MPModem will convert this filename and display it as
  1472.         "Some_Mac.cpt". MPModem will then display (as a notice):
  1473.             "Remote filename: Some Macpaint Pics.cpt"
  1474.  
  1475.  
  1476.    Remote refused file!
  1477.  
  1478.         Zmodem tried to send a file to the remote but for some reason the
  1479.         file was rejected. Zmodem will endeavour to send the next file (if
  1480.         there is one) or else it will finish the transfer at this point.
  1481.  
  1482.  
  1483.    Repositioning.
  1484.  
  1485.         This tells you that the protocol is undergoing an error recovery by
  1486.         stepping backwards into the file to replace data already sent and
  1487.         was corrupt with data that is correct.
  1488.  
  1489.         In X/Ymodem this involves going backwards in the file by the amount
  1490.         of the current blocksize (128 or 1024 bytes) and with Zmodem it can
  1491.         mean going back to anywhere in the file.
  1492.  
  1493.         The position of where the program is re-starting the transfer from
  1494.         is displayed to the left of this message.
  1495. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 34
  1496.  
  1497.  
  1498.    Sending data header.
  1499.  
  1500.         This is not an error message but rather it indicates that we are
  1501.         about to start sending the file.
  1502.  
  1503.  
  1504.    Sending EOF.
  1505.  
  1506.         Zmodem is trying to tell the receiver that he has finished sending
  1507.         the file and that it will shortly be sending another file (if there
  1508.         is one more to be sent).
  1509.  
  1510.  
  1511.    Sending file...
  1512.  
  1513.         Zmodem is in the process of sending a file.
  1514.  
  1515.  
  1516.    Sending ZRQINIT.
  1517.  
  1518.         This indicates that Zmodem sending routine is trying to get the
  1519.         transfer started by sending the prompt to the receiver to make it
  1520.         start up.
  1521.  
  1522.  
  1523.    Setting start position
  1524.  
  1525.         This indicates what position within the file the sender will be
  1526.         starting the file transfer from. Generally it is 0, meaning the
  1527.         start of the file but when the receiver wants us to resume a file
  1528.         transfer it will indicate some other position within the file.
  1529.  
  1530.         This is not an error message.
  1531.  
  1532.  
  1533.    TIMED OUT!!!!!!!!!
  1534.  
  1535.         An Xmodem, Xmodem-1k, Ymodem or Ymodem-G file transfer has aborted
  1536.         because it has waited too long to either send or receive a file.
  1537.         This can be caused by either end becoming stuck because it missed
  1538.         the XON character after the XOFF character had been received.
  1539.  
  1540.         If this occurs often enough, please contact me at my E-mail
  1541.         address.
  1542.  
  1543.  
  1544.    Timed out waiting for entire buffer to clear.
  1545.  
  1546.         This message will appear in the log if the log is switched on via
  1547.         the "-l" switch.
  1548.  
  1549.         Zmodem has timed out while trying to clear the current transmit
  1550.         buffer. This points to a serious error in your system setup or the
  1551.         actual 8250, 16450 or 16550 chip. Try the transfer using a
  1552.         different protocol and if the situation persists then have the
  1553.         chip replaced.
  1554.  
  1555.         If you believe it is this program's fault then please send me a
  1556.         message via E-mail (if you are registered).
  1557. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 35
  1558.  
  1559.  
  1560.    Timeout.
  1561.  
  1562.         Either the receiver or transmitter routines have timed out while
  1563.         waiting to receive or send data. This generally means that the
  1564.         other end has been delayed (maybe it is a slower machine than
  1565.         yours) or that your machine is taking too long to handle the output
  1566.         of data.
  1567.  
  1568.         This is not a serious problem but can indicate a loss of carrier if
  1569.         the "-c" switch was not used. Maybe you should try the "-t" switch
  1570.         which will create a time out value more in line with the Baud rate
  1571.         than the standard time out value.
  1572.  
  1573.  
  1574.    Timeout (?? tries)
  1575.  
  1576.         Xmodem, Xmodem-1k, Ymodem, Ymodem-G has continually timed out. The
  1577.         "??" is substituted with the number of tries so far.
  1578.  
  1579.         It is quite possible that you have lost connection with the other
  1580.         end. If you have not specified the "-c" switch on the command line
  1581.         then it may be wise to do so in the future.
  1582.  
  1583.  
  1584.    Too many repositions!
  1585.  
  1586.         Zmodem has got sick of repositioning to the same point in the file.
  1587.         This generally indicates there is a problem with the receiver
  1588.         receiving our packets and may indicate an extremely noisy line or
  1589.         the fact that Zmodem has somehow got entirely out of sync.
  1590.  
  1591.  
  1592.    Unable to allocate enough memory for I/O Buffer! (??)
  1593.  
  1594.         MPModem has failed to obtain enough memory from the free memory
  1595.         pool and thus cannot run in the current environment.
  1596.  
  1597.         If you are multi-tasking then increase the allocation of memory for
  1598.         MPModem. If you are not then removing some of the TSRs will help
  1599.         alleviate the problem. If there is still not enough room then you
  1600.         may have to reduce the size of any disk cacheing or BUFFERS.
  1601.  
  1602.  
  1603.    Unable to allocate memory (1k)
  1604.  
  1605.         The sending routine of Zmodem could not obtain enough memory from
  1606.         the free memory pool. All it needs is a lousy 1024 bytes of memory
  1607.         so please adjust your memory requirements accordingly.
  1608.  
  1609. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 36
  1610.  
  1611.    Unable to create a unique filename.
  1612.  
  1613.         When a file is received by Ymodem, Ymodem-G or Zmodem and you do
  1614.         not want files to be resumed (Zmodem only), and the file name
  1615.         received is the same as an existing one, then MPModem will
  1616.         endeavour to create a unique filename. Generally, it will replace
  1617.         the last character in the file extension (if it has one) with the
  1618.         letter 1, or if that fails 2 or if that fails 3 and so on.
  1619.  
  1620.         For example, suppose we already have a file called "test.txt" and
  1621.         suddenly Ymodem says it has another file called "test.txt". MPModem
  1622.         will now check to see if there is a file called "test.tx1". If not
  1623.         it will create such a file. If there is then it will create a file
  1624.         called "test.tx2" and so on until it gets to "text.999" before it
  1625.         aborts! This situation should never happen.
  1626.  
  1627.  
  1628.    Unable to open file.
  1629.  
  1630.         Well just as it says, MPModem was unable to open the file. If you
  1631.         are transmitting something, then this can indicate that the disk is
  1632.         bad, the file is bad or it is just plain missing. Fix it if
  1633.         possible. If it's missing, then perhaps you typed the name wrong?
  1634.  
  1635.         If you are receiving a file then it means you either have a bad
  1636.         disk or you are receiving a file from a remote site (like a
  1637.         Macintosh (tm) System) and have not specified the "-m" switch. Do
  1638.         so now and start again.
  1639.  
  1640.  
  1641.    Verifying CRC of file.
  1642.  
  1643.         In Zmodem, it is possible for the remote system to request a CRC of
  1644.         the file you have just received. It is a means of trying to ensure
  1645.         correct reception of data not just over the telecommunications line
  1646.         but also in the writing of the file to disk.
  1647.  
  1648.  
  1649.    Waiting for receiver.
  1650.  
  1651.         Zmodem sending routine is now waiting for the sender to get back in
  1652.         synchronization with us. This is a normal occurrence at the end of
  1653.         each file.
  1654.  
  1655.  
  1656.    Waiting to send file(s).
  1657.  
  1658.         The Zmodem send routine is now waiting (patiently I might add) for
  1659.         the receiver to give it instructions on various important aspects
  1660.         of the file transfer. Without these instructions, Zmodem cannot
  1661.         proceed.
  1662.  
  1663. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 37
  1664.  
  1665.  
  1666.   7.0.1  Report File Messages
  1667.   ---------------------------
  1668.  
  1669.    Detailed below are the various report file (MPMODEM.RPT) messages that
  1670.    appear when you run this program from a BBS.
  1671.  
  1672.  
  1673.    <Usernumber> has received all of file <filename>
  1674.  
  1675.         This tells the sysop that <Usernumber> (A user's system number) has
  1676.         received all of <filename>. Because MPModem did not have time
  1677.         to close off and do all necessary file handling the user has
  1678.         essentially got the file for nothing. The Sysop may want to note the
  1679.         users that continually have this "problem" because they may be
  1680.         experiencing real problems or they may have a "re-coded" version
  1681.         of Zmodem.
  1682.  
  1683.  
  1684.    Unable to create unique filename. File: <filename>
  1685.  
  1686.         MPModem tried to create a unique filename for <filename> but failed.
  1687.         This either indicates disk/storage media problems or you may already
  1688.         have upto 999 connotations of the filename. The latter is highly
  1689.         unlikely as you would have to have:
  1690.  
  1691.            (assuming the filename is "FRED.CPT")
  1692.  
  1693.            FRED.CP1
  1694.            FRED.CP2
  1695.              .
  1696.              .
  1697.              .
  1698.            FRED.999
  1699.  
  1700.         This means that you would have to have 1000 files (as detailed above)
  1701.         and this would be unlikely. If it is neither of these then contact the
  1702.         author (after you have tried again to receive the file).
  1703.  
  1704.  
  1705.    Existing file cannot be overwritten. File <filename>
  1706.  
  1707.         The <filename> being received already exists on your system and is
  1708.         either Read-Only, Hidden, System or a Volume Label Name. Either
  1709.         way, this is not a serious message as MPModem will simply reject
  1710.         such files.
  1711.  
  1712.  
  1713.    File positioning error.
  1714.  
  1715.         This can happen when both receiving and sending. Generally this
  1716.         indicates (when sending) that the receiver has asked us to
  1717.         reposition past the End-Of-File. The same can go for receiving.
  1718.  
  1719.         Generally, it is wise to assume that it could be a disk problem
  1720.         so run CHKDSK or its equivalent and perhaps some type of disk
  1721.         diagnosis tool to assure yourself that the disk media is not at
  1722.         fault.
  1723. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 38
  1724.  
  1725.  
  1726.   8.0  Acknowledgements
  1727.   ---------------------
  1728.  
  1729.    The author wishes to acknowledge the following people:
  1730.  
  1731.  
  1732.       Chuck Forsberg     -  The creator of Zmodem.
  1733.       Ward Christensen   -  Creator of Modem.Asm (1977)
  1734.       Keith Petersen     -  Adapted Modem.Asm for RCPM (Remote CP/M)
  1735.                             systems and called it Xmodem.
  1736.       Gary S. Brown      -  The 32 bit CRC code.
  1737.       Joe Campbell       -  "C Programmer's Guide to Serial Communications"
  1738.                             An excellent reference book written clearly
  1739.                             but perhaps not concisely.
  1740.  
  1741.    All products mentioned in this documentation are trademarks of or
  1742.    copyright to their respective owners.
  1743. MPModem v1.54  Copyright (C) 1992, 1993, M. Jose                     Page 39
  1744.  
  1745.  
  1746.   9.0  Errors or Omissions
  1747.   ------------------------
  1748.  
  1749.    Please advise the author of any errors or omissions that appear in this
  1750.    manual. Contact me at the addresses specified in the "REGISTER" file.
  1751.  
  1752.    Thank you for supporting this software. Enjoy.
  1753.  
  1754.  
  1755.   9.1  Other things
  1756.   -----------------
  1757.  
  1758.  
  1759.    Oh yes, almost forgot. This program was written in Borland's
  1760.    Turbo C 2.x. What a great product of which I whole heartedly endorse to
  1761.    all programmers whether you be novices or experienced hackers. Some
  1762.    parts were developed using Microsoft C v5.x - these were then "converted"
  1763.    to compile under Turbo C.
  1764.  
  1765.  
  1766.    While Borlands' manuals are great I wish they would make them spiral
  1767.    bound so that the spines do not break! I suppose if that is the only
  1768.    complaint then it's a rather trivial one. :-)
  1769.  
  1770.  
  1771.