home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / progmisc / djasy10d.zip / README.JAE < prev   
Text File  |  1992-09-11  |  3KB  |  80 lines

  1. This is a revised version of DJ's async handler. The file diffs.10b
  2. gives a diff from DJASY100 to these files.
  3.  
  4. changes from v. 100 to 10A
  5.  
  6. 1) Can now have two handlers TSR'd at the same time. The interface
  7. routines in async.c take a port argument (0 or 1, for COM1 or COM2)
  8. and you can use both ports in the same program.
  9.  
  10. 2) Now has protection against ring buffer corruption since I disable
  11. interrupts while the C interface is accessing the ring buffer.
  12.  
  13. 3) The receive buffer is larger -- it's 4096 bytes, not 500. But you
  14. can change this to any value you want by modifying asynctsr.asm and
  15. rebuilding the tsr.
  16.  
  17. 4) The makefile is set up to use TASM, not MASM (you may or may not
  18. consider this an enhancement, depending on how you feel about <gag>
  19. MASM).
  20.  
  21. 5) I prototyped the interface in djasync.h.
  22.  
  23. 6) I added a C++ class DJAsync if you like that interface better.
  24.  
  25. 7) I added overflow checking so that the app can find out if the ring
  26. buffer overlowed. This is done as a counter of the # of characters
  27. that got clobbered which is returned (and reset) by calling the API
  28. function async_overflow(port).
  29.  
  30. 9) added atestpp which uses the class interface.
  31.  
  32. 10) added port argument to atest and atestpp, defaults to 1.
  33.  
  34. changes from 10A to 10B:
  35.  
  36. 1) asynctsr now takes the receive buffer size in bytes as an optional
  37. command line argument.
  38.  
  39. changes from 10B to 10C:
  40.  
  41. 1) implemented code which if assembled in flushes the buffer on an
  42. overflow, rather than just tossing the offending character.
  43.  
  44. changes from 10C to 10D:
  45.  
  46. 1) fixed code implemented in 10B->10C fix, which couldn't be
  47. assembled in based on the symbol I used.
  48.  
  49. 2) made this code a run time thing (see usage message).
  50.  
  51. 3) fixed bug where you could allocate a buffer of 0 bytes, maybe
  52. even accidentally, like saying "asynctsr 1000", which would really
  53. buffer port 1 with no buffer at all (not nice).
  54.  
  55. 4) added command line option to atest and atestpp, so you can
  56. specify whether or not to display on the top line the buffer count
  57. and overflow count, and optionally add a delay between polling for
  58. characters from the buffer. This aids tremendously in debugging.
  59.  
  60. format is now:
  61.  
  62.         atest port# [delay_in_msec]
  63.  
  64. if delay_in_msec is 0, no delay is used, but the top line display is
  65. enabled.
  66.  
  67. Note:
  68.  
  69. I didn't implement interrupt-driven transmission because of the
  70. real-mode vs.  protected-mode difficulties involved in passing
  71. buffers around. I may do something about this at a later time. Right
  72. now, this code does what I need.
  73.  
  74. All original copyrights etc apply to this code as well.
  75.  
  76. J. Alan Eldridge
  77. Liberty Brokerage
  78. 77 Water St.
  79. New York, NY 10005
  80.