home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / dos / communic / mcomm552 / update.doc < prev    next >
Encoding:
Text File  |  1992-08-14  |  12.1 KB  |  249 lines

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