home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpm / mex / mex-buff.lbr / BUFFERS.DQC / BUFFERS.DOC
Text File  |  1986-09-04  |  4KB  |  77 lines

  1.  
  2.                             BUFFERS.DOC
  3.  
  4.      This file explains the buffering scheme used in MEX, and how you
  5. can change it using the MEXPAT overlay file.
  6.  
  7.      MEX employs a number of dynamically-allocated buffers for such
  8. things as terminal-file storage, printer buffer, keystrings, modem
  9. pre-read queue, and the phone library.  The size of these buffers are
  10. defined in a fixed area of MEX.  You can change their values by editing
  11. and assembling MEXPATxx.ASM, then using MLOAD to bind in the new values:
  12.  
  13.                         ASM MEXPAT12
  14.                         MLOAD MEXNEW.COM=MEX114.COM,MEXPAT12
  15.  
  16.      The variable labeled PSIZE in the MEXPAT file defines the number of
  17. Kbytes to use for the printer buffer.  This can be set as low as 0, or
  18. as arbitrarily large as you'd like.  The variable labeled ASIZE performs
  19. a similar function for the terminal-mode file capture buffer, but must
  20. be set to 2 or greater, to reserve the minimum 2K space for file
  21. transfers.
  22.  
  23.      One of the two (and only one) must have the value 255 (0FFH).  This
  24. defines a particular buffer as the "top" buffer ... ie, the buffer
  25. allocated after all other space has been allocated, and extends to the
  26. top of the TPA.  This is usually the largest buffer, and it is recommended
  27. that this be the terminal-mode capture buffer, since that is the most
  28. frequently used buffer.
  29.  
  30.      The PHSIZE label defines the maximum size of the phone library, in
  31. entries.  Currently an entry is 37 bytes long, so the "standard" value
  32. for PHSIZE of 30 results in a phone library consuming more than 1100
  33. bytes.
  34.  
  35.      Similarly, the KYSIZE variable defines the amount of space (in
  36. bytes) reserved for terminal-modem keystrings.  The "standard" value
  37. is 400 bytes.
  38.  
  39.      If you don't use phone libraries or keystrings, either variable may
  40. be set to zero, and the resulting space reclaimed for the "top" buffer.
  41.  
  42.      Another buffer variable is the NSIZE label: this defines the size
  43. of the file-transfer batch filenames buffer (in Kbytes).  For each 1K
  44. allocated to this buffer, you can transmit 85 files at a time.  Hence,
  45. if 85 files are not enough, you can set NSIZE to 2 and transmit 170
  46. files at a time.  If you don't use batch file transfers, you can set
  47. this variable to 0, and reclaim the space for the "top" buffer.
  48.  
  49.      The XSIZE label defines the number of Kbytes for the file transfer
  50. disk buffer.  Note that this is not an allocated buffer, but resides
  51. within the terminal-mode file buffer.  XSIZE is used to restrict the
  52. actual size of the buffer, and should be less than or equal to ASIZE.
  53. This restriction is necessary in systems with extremely slow floppy
  54. disks, since there is the possibility of the remote end timing out while
  55. MEX flushes its disk buffer.
  56.  
  57.      PQSIZE defines the size of the queue used to service the modem at
  58. certain times (such as after sending an X-OFF to the remote when the
  59. terminal-file buffer fills up, during the overflow wait time.  Also used
  60. to "watch" the modem while transmitting keystrings, SENDOUT strings, and
  61. within certain long loops, when there is a possibility of losing
  62. characters).  This buffer must be a minimum of 2 bytes, and may be as
  63. arbitrarily large as you'd like.  There is little to gain in increasing
  64. the size, however, unless you consistently run at speeds greater than
  65. 1200 baud.
  66.  
  67.      You may at some time see the message "Not enough memory for MEX!".
  68. This happens when there is not enough memory to meet MEX's minimum
  69. buffer requirements.  Normally, this will only happen in small memory
  70. segments (when you're running a small CP/M system, for example, or
  71. running in a small MP/M segment), but you'll also see it if you've
  72. increased MEX's buffers too much.
  73.  
  74.      The only recovery possible is to reduce some of the buffers (or
  75. obtain more memory).
  76.  
  77.