home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Oakland CPM Archive
/
oakcpm.iso
/
cpm
/
mex
/
mex-buff.lbr
/
BUFFERS.DQC
/
BUFFERS.DOC
Wrap
Text File
|
1986-09-04
|
4KB
|
77 lines
BUFFERS.DOC
This file explains the buffering scheme used in MEX, and how you
can change it using the MEXPAT overlay file.
MEX employs a number of dynamically-allocated buffers for such
things as terminal-file storage, printer buffer, keystrings, modem
pre-read queue, and the phone library. The size of these buffers are
defined in a fixed area of MEX. You can change their values by editing
and assembling MEXPATxx.ASM, then using MLOAD to bind in the new values:
ASM MEXPAT12
MLOAD MEXNEW.COM=MEX114.COM,MEXPAT12
The variable labeled PSIZE in the MEXPAT file defines the number of
Kbytes to use for the printer buffer. This can be set as low as 0, or
as arbitrarily large as you'd like. The variable labeled ASIZE performs
a similar function for the terminal-mode file capture buffer, but must
be set to 2 or greater, to reserve the minimum 2K space for file
transfers.
One of the two (and only one) must have the value 255 (0FFH). This
defines a particular buffer as the "top" buffer ... ie, the buffer
allocated after all other space has been allocated, and extends to the
top of the TPA. This is usually the largest buffer, and it is recommended
that this be the terminal-mode capture buffer, since that is the most
frequently used buffer.
The PHSIZE label defines the maximum size of the phone library, in
entries. Currently an entry is 37 bytes long, so the "standard" value
for PHSIZE of 30 results in a phone library consuming more than 1100
bytes.
Similarly, the KYSIZE variable defines the amount of space (in
bytes) reserved for terminal-modem keystrings. The "standard" value
is 400 bytes.
If you don't use phone libraries or keystrings, either variable may
be set to zero, and the resulting space reclaimed for the "top" buffer.
Another buffer variable is the NSIZE label: this defines the size
of the file-transfer batch filenames buffer (in Kbytes). For each 1K
allocated to this buffer, you can transmit 85 files at a time. Hence,
if 85 files are not enough, you can set NSIZE to 2 and transmit 170
files at a time. If you don't use batch file transfers, you can set
this variable to 0, and reclaim the space for the "top" buffer.
The XSIZE label defines the number of Kbytes for the file transfer
disk buffer. Note that this is not an allocated buffer, but resides
within the terminal-mode file buffer. XSIZE is used to restrict the
actual size of the buffer, and should be less than or equal to ASIZE.
This restriction is necessary in systems with extremely slow floppy
disks, since there is the possibility of the remote end timing out while
MEX flushes its disk buffer.
PQSIZE defines the size of the queue used to service the modem at
certain times (such as after sending an X-OFF to the remote when the
terminal-file buffer fills up, during the overflow wait time. Also used
to "watch" the modem while transmitting keystrings, SENDOUT strings, and
within certain long loops, when there is a possibility of losing
characters). This buffer must be a minimum of 2 bytes, and may be as
arbitrarily large as you'd like. There is little to gain in increasing
the size, however, unless you consistently run at speeds greater than
1200 baud.
You may at some time see the message "Not enough memory for MEX!".
This happens when there is not enough memory to meet MEX's minimum
buffer requirements. Normally, this will only happen in small memory
segments (when you're running a small CP/M system, for example, or
running in a small MP/M segment), but you'll also see it if you've
increased MEX's buffers too much.
The only recovery possible is to reduce some of the buffers (or
obtain more memory).