home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
BEEHIVE
/
COMMS
/
MEX4BEE.ARC
/
BUFFERS.DOC
next >
Wrap
Text File
|
1990-09-20
|
4KB
|
71 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 MEXPAT10
MLOAD MEXNEW.COM=MEX.COM,MEXPAT10
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 arb-
itrarily large as you'd like. The variable labeled ASIZE performs a sim-
ilar 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 I recommend 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) re-
served 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 possiblity 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 con-
sistently 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 re-
quirements. 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).