home *** CD-ROM | disk | FTP | other *** search
/ World of Shareware - Software Farm 2 / wosw_2.zip / wosw_2 / CPROG / MCOMM557.ZIP / UPDATE.DOC < prev    next >
Text File  |  1993-09-11  |  16KB  |  320 lines

  1.  
  2.                              MCOMM 5.57 UPDATE NOTES
  3.  
  4.          Made a change to an internal routine that initiated transmit
  5.          interrupts.  This change fixes 2 problems--one with some new
  6.          UARTs that recently appeared, and the other with failed or very
  7.          slow transmits when running a program that uses MCOMM in a DOS
  8.          box under OS/2.
  9.  
  10.          The COMM.H header file was modified to include vector numbers
  11.          and IRQ masks for IRQs other than 3 and 4.
  12.  
  13.          Fixed a problem with the RecurseSubdirs function in TXZM.C.  It
  14.          sometimes lost track of the current directory if the recurse
  15.          subdirectories option was used when sending files.
  16.  
  17.          Registered users of 5.50+ may download a free upgrade to 5.57
  18.          by logging onto N.E.T. Datalink, 903-838-6713, and leaving a
  19.          message to the sysop that includes:
  20.  
  21.              1) Registration number from the original disk.
  22.              2) Whether the original registration was for "Source
  23.                 and Libraries" or "Libraries Only".
  24.              3) Your name and address.  This must match the name and
  25.                 address the software was originally registered under
  26.                 unless you have moved.
  27.  
  28.         Please allow 3 or 4 days from the time you leave the message
  29.         requesting the update until you call back to download it.
  30.  
  31.         Mail in updates are $10.  See ORDER.DOC if you want a mail in
  32.         update.
  33.  
  34.  
  35.  
  36.  
  37.                            MCOMM 5.54-5.56 UPDATE NOTES
  38.  
  39.          Up to four ports may now be opened simultaneously as long as
  40.          they do not share port addresses, IRQ lines, or vector numbers.
  41.          Previously the limit was 2 simultaneous ports.  The AT extended
  42.          IRQ lines (IRQs 8 thru 15) are not supported.
  43.  
  44.          A new use for 'v_scrlm' flag in the ANSI video code has been
  45.          implemented making it easier to develop code that emulates the
  46.          VT100.  Setting 'v_scrlm' to -1 causes the screen and cursor
  47.          positioning to behave properly for VT100 no scroll mode.  This
  48.          change should have no effect on existing code.
  49.  
  50.          Fixed a bug in the video code that occurred when a backspace
  51.          character was displayed within a string with direct writes
  52.          enabled.  (This last change is the difference between 5.55 and
  53.          the 5.54 beta).  Version 5.56 consisted of a change to TXZM.C
  54.          demo to account for change in COMM_S.LIB noted in following
  55.          paragraph.
  56.  
  57.  
  58. VERY IMPORTANT:
  59.  
  60.          If your code uses the option to disable or ignore the 16550
  61.          FIFOs, or if your code disables MSR or LSR interrupts, you must
  62.          make some changes to your source before using the new libs.  In
  63.          order to support port addresses above 0x0FFFh, it was necessary
  64.          to not use the high bits of the async_open ComBase parameter as
  65.          flags.  Flags affecting 16550 operation and LSR/MSR interrupts
  66.          must now be OR'd with the 'vctrnbr' argument of async_open
  67.          rather than the 'combase' parameter.  ASYNC.DOC reflects these
  68.          changes to the async_open function.
  69.  
  70.  
  71.  
  72.  
  73.                              MCOMM 5.52 UPDATE NOTES
  74.  
  75.          No changes have been made to the serial code.  The video
  76.          code includes a new feature that allows installing your own
  77.          handler for unrecognized ANSI sequences (see SUPLMNT.DOC).
  78.          The demos were updated to work with the latest versions of
  79.          Borland/Turbo C/C++ and Microsoft C/C++.  The latest version
  80.          of Zortech C/C++ the code has been tested with is 2.00.  They
  81.          should work with later versions of ZTC with few or no changes.
  82.  
  83.          The ZMODEM demo (TXZM) was organized a little differently so
  84.          all three supported compilers could use the the same ZMLIBs,
  85.          rather than having a set of ZMLIBs for each memory model for
  86.          each compiler.  This required including another module of the
  87.          source code in the shareware version of MCOMM (XYZGEN.C) that
  88.          formerly only came with the registered version.  This change
  89.          also fixed some linker "unresolved external" errors for users
  90.          of earlier versions of Turbo C.
  91.  
  92.          The TXZM demo now will respond with a CPR (cursor position
  93.          report) sequence when it is sent an ANSI DSR (device status
  94.          request).  This is so BBS systems that auto-detect ANSI will
  95.          recognize TXZM's mini-terminal mode as an ANSI capable program.
  96.          The implementation of this feature in TXZM is also a good
  97.          example of how to put an unrecognized ANSI sequence handler in
  98.          your program if you are using the MCOMM video functions.
  99.  
  100.          Support for "Doorway" mode was added to TXZM.  Pressing ALT=
  101.          while in mini-terminal mode toggles this mode on and off.  The
  102.          screen switches to a 25 line display when Doorway mode is on
  103.          and reverts back to a 24 line display when Doorway mode is off.
  104.          Since the purpose of Doorway mode is to allow the sending of
  105.          special keys such as function keys, the arrow keys, PGUP, PDDN,
  106.          etc., none of the TXZM program functions (including Exit, Help,
  107.          Shell, etc.) work while Doorway mode is enabled.
  108.  
  109.          An otherwise undocumented -7 switch was added to TXZM.  This
  110.          switch strips the high bit from incoming characters when in
  111.          mini-terminal mode.
  112.  
  113.  
  114.  
  115.  
  116.                              MCOMM 5.50 UPDATE NOTES
  117.  
  118.          Version 5.50 adds RTS flow control for the receive side.
  119.          Previous versions supported monitoring CTS to insure the device
  120.          being sent to was not overran but did not lower RTS if the PC
  121.          was being overran.  The function 'async_msrflow' has been
  122.          modified to support this option.  For more information, see the
  123.          updated documentation on 'async_msrflow' in ASYNC.DOC.  This
  124.          change also necessitated a change in the ASYNC structure making
  125.          it one byte longer.  BE SURE TO USE THE RIGHT HEADER FILE AND
  126.          RECOMPILE ANY CODE THAT USES COMM.H or COMM.HPP.
  127.  
  128.          Added a Zmodem demo program called TXZM.  The shell code and
  129.          linkable libraries are not part of the shareware version of
  130.          MCOMM.  Complete source comes with the registered version.
  131.          This is primarily a demo with limited documentation and limited
  132.          support.  It also happens to be very fast and contains a lot of
  133.          extras.  It MAY NOT be distributed except as stated in its
  134.          documentation.
  135.  
  136.  
  137.                              MCOMM 5.41 UPDATE NOTES
  138.  
  139.          Version 5.41 contains a few minor changes and bug fixes.  These
  140.          are:
  141.  
  142.          1) The 'volatile' keyword was added to ASYNC structure members
  143.             that are modified by the interrupt handler.  This corrects
  144.             problems with optimizing compilers (such as MSC 6.0) that
  145.             load variables into registers.  Many of the macro
  146.             implemented functions test variables that are modified by
  147.             the interrupt handler.  If the compiler, in optimizing a
  148.             loop, loads a variable into a register that is modified by
  149.             the interrupt handler, it will never see the variable
  150.             change.  The 'volatile' key word instructs the compiler to
  151.             not assume the variable remains constant.  Thanks to Chris
  152.             Fanning for pointing this out to me.
  153.  
  154.          2) The ANSI cursor position sequence did not recognize the
  155.             window relative ('v_wrel') mode of operation.  If an ANSI
  156.             cursor sequence was received, it was always treated relative
  157.             to 0,0.  It now treats the current window's top left corner
  158.             as 0,0 if 'v_wrel' is non-zero.  Thanks to David Speer for
  159.             this information.
  160.  
  161.          3) When a line was exactly the width of the screen, any
  162.             following CR/LFs were ignored until a non CR/LF character
  163.             was received.  This is now fixed.
  164.  
  165.          4) The definition of SHFT_TAB in KEYS.H has been wrong for the
  166.             last several versions.  Thanks to Cleo Yarber for pointing
  167.             this out to me several times.
  168.  
  169.  
  170.  
  171.  
  172.                              MCOMM 5.40 UPDATE NOTES
  173.  
  174.          The 5.40 version of MCOMM corrects two problems:
  175.  
  176.          1) Some UARTs miss transmit interrupts when they are ran in
  177.             full duplex mode.  Code was added to detect missed
  178.             interrupts and correct the situation.  This condition would
  179.             cause previous versions of MCOMM to quit transmitting until
  180.             the transmit buffer was flushed or the port closed and
  181.             reopened.  This bug only showed up when operating in full
  182.             duplex mode and only with some UARTs.  Version 5.40 has been
  183.             tested by running several megabytes of data through 8250,
  184.             16450, and 16550 UARTs in full duplex mode and never fails
  185.             to detect a missed interrupt and correct for it.
  186.  
  187.          2) The loop that loads bytes into the transmit FIFOs (or the
  188.             transmit hold register if the UART isn't a 16550) updates
  189.             the transmit buffer output pointer in a register.  The loop
  190.             is in the transmit interrupt handler and in previous
  191.             versions of MCOMM5 the transmit interrupt handler code was
  192.             called by the routine that started up the transmitter.  If a
  193.             transmit interrupt occurred while the transmit start up code
  194.             was within this loop, the buffer output pointer could be
  195.             corrupted.  The result was scrambled output.  This only
  196.             happened if the transmitter was sent a character, allowed to
  197.             empty, and then immediately sent another character.  If only
  198.             one character was sent at a time slowly, as in typing, or if
  199.             the buffer was loaded up rapidly as in a program loop,
  200.             everything was OK.  If characters were sent in a program loop
  201.             that put a "small" delay between characters (character
  202.             pacing), it often failed.  This was corrected by changing
  203.             the transmit initiate routine so that it toggles the
  204.             transmit interrupt enable bit in the UART's interrupt enable
  205.             register to initiate transmit interrupts rather than calling
  206.             the interrupt handler directly.
  207.  
  208.  
  209.          ADDITIONS:
  210.  
  211.          An option was added to the async_open function to force FIFO
  212.          mode off.  Previously you could OR the ComBase parameter with
  213.          0x8000 and the code skipped over the check for a 16550 UART.
  214.          If it was there and on, it stayed on.  If it was there and off,
  215.          it stayed off.  You can now OR the ComBase parameter with
  216.          0x4000 to force the FIFOs to be off.  If you don't OR anything
  217.          with the ComBase parameter the FIFOs will be enabled if a 16550
  218.          is present.
  219.  
  220.          To deal with problems with the Western Digital 16550, the ASYNC
  221.          port structure is now one element longer.  The new element is
  222.          called 'IERVal'.  Also options were added to allow you to open
  223.          a port without enabling MSR interrupts, LSR interrupts, or
  224.          both.  See the notes on the WD16550 in ASYNC.DOC for more
  225.          information.
  226.  
  227.  
  228.  
  229.  
  230.          Conversion LIBs and a batch file were added to support Zortech
  231.          C / C++.  C++ header files and a C++ demo program for either
  232.          Turbo C++ or Zortech C++ were added.
  233.  
  234.          Two new macros are now defined in COMM.H.  They are:
  235.  
  236.          async_txcnt(ASYNC *port) -- returns number of bytes left
  237.                                      in the transmit buffer still to
  238.                                      be transmitted.  Use async_txempty
  239.                                      if you are waiting for 0 byte
  240.                                      condition -- it's more efficient.
  241.  
  242.          async_rxfree(ASYNC *port) - returns bytes of free space left
  243.                                      in the receive buffer.
  244.  
  245.  
  246.          VIDEO FUNCTIONS:
  247.  
  248.          One minor bug was fixed.  The rd_scrnd function returned an
  249.          incorrect pointer if the function was called with a request to
  250.          read 0 bytes.  The result string was correct but the return
  251.          value was wrong.  It now returns the correct pointer.
  252.  
  253.          A new global variable was added to control whether a displayed
  254.          backspace character was destructive or non-destructive.
  255.          Previously it was always destructive and that still is the
  256.          default.  The variable is v_bksp.  Setting v_bksp to 0 will
  257.          cause the backspace character to be non-destructive.
  258.  
  259.  
  260.  
  261.  
  262.                             MCOMM 5.20 UPGRADE NOTES
  263.  
  264.             Major changes in this version of MCOMM are support for the
  265.          16550 UART's FIFO mode of operation, changes in the header
  266.          files, new time-out functions, and updated documentation.
  267.  
  268.  
  269.          16550 UART SUPPORT:
  270.  
  271.             The async code now supports the 16550 UART's FIFO mode of
  272.             operation.  Key features are:
  273.  
  274.             1) The async_open function automatically detects a 16550 and
  275.                enables its FIFOs (can be optionally defeated).
  276.  
  277.             2) Functions are provided to set the receiver FIFO trigger
  278.                level and to control the maximum number of bytes to load
  279.                into the transmit FIFO at one time.
  280.  
  281.             3) The interrupt handler has been re-written to make most
  282.                efficient use of the FIFO registers (they process
  283.                multiple bytes per interrupt).
  284.  
  285.             ASYNC.DOC contains full descriptions of the new functions
  286.             and changes made to the old functions.  It also has some
  287.             information on how to set the receiver FIFO trigger level
  288.             and the 'maximum number of bytes to transmit to the FIFOs at
  289.             one time' level to achieve the best results.
  290.  
  291.  
  292.          HEADER FILE CHANGES:
  293.  
  294.             Due to stricter type checking of newer compilers, several
  295.             functions that formerly were declared as taking 'char' argu-
  296.             ments are now declared as taking 'int' arguments.  This
  297.             prevents getting an excessive number of warnings when pass-
  298.             ing constants to these functions.
  299.  
  300.             The 'cdecl' keyword was added to the function prototypes to
  301.             prevent problems when compiling with Microsoft's 'fastcall'
  302.             option enabled.  This keyword, as well as the 'near' and
  303.             'far' keywords, may not be compatible with your compiler.
  304.             See MUSTREAD.DOC for more information.
  305.  
  306.             All the video functions are now prototyped in ANSIDRV.H.
  307.             Before half of them were in ANSIDRV.H and the rest were in
  308.             EXTRA.H.
  309.  
  310.  
  311.          TIME OUT FUNCTIONS:
  312.  
  313.             The time-out functions have been changed to a new version
  314.             that takes a pointer to a 'long' rather than a pointer to a
  315.             TIMEOUT structure.  The new functions are faster and work
  316.             with longer timeouts than the old versions.  Converting to
  317.             the new style consists mainly of changing all occurrences of
  318.             'struct TIMEOUT' in your code to 'long'.
  319.  
  320.