home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GEMini Atari
/
GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso
/
zip
/
telecomm
/
serfx20.lzh
/
serialfx.doc
< prev
Wrap
Text File
|
1992-12-15
|
11KB
|
265 lines
Serial Fix © 1993
by Medical Designs Software
Version 2.0
Written by: Bill Penner and Bruce D. Noonan, M.D.
This program may be distributed and used, free of charge, provided
that the program is distributed in complete form and UNmodified. This
software is not to be sold, however, may be included on disks which are
sold for a small handling fee. Medical Design Software retains all
copyright exclusive rights except exclusive distribution. This
software consists of the following files: SERFX20.PRG, SERIALFX.CPX,
and SERIALFX.DOC (this file).
PURPOSE
Serial Fix is now a universal serial port patch for use on the
ATARI ST/STe/TT computers. Serial Fix now incorporates the TOS14FIX
and SERPATCH patches from ATARI, so no longer do you need several patch
programs. A problem in the serial port software appears when a high
speed or high speed buffered modem is used in conjunction with ZMODEM
or any near-continuous flow transfer program. The ST/TT has problems
properly recognizing when the modem deasserts CTS (telling the ST/TT
that the buffer is full and don't send any more data), resulting in the
ST overflowing the modem's buffer. This results in bad data being sent
which results in CRC errors, packet size problems, and other data
transmission errors.
TurboCTS (an old program of mine) was only a partial fix of the
problem. TurboCTS did manage to speed things up to the point where CTS
response was generally ok, however, that program did not work on the
TT, did not support XBRA programming requirements, and only worked for
RTS/CTS handshaking.
Serial FIX works with all versions of TOS from 1.0 through 3.06 and
FALCON TOS. Serial FIX supports both RTS/CTS, XON/XOFF, and no
handshaking modes. The desired handshaking mode is set from the RS232
control panel or other program as you currently do now. Simultaneous
XON/XOFF and RTS/CTS can be selected by locking the RTS/CTS mode on in
the SERIALFX CPX and selecting XON/XOFF from the control panel/RS232
CPX. This is a REAL fix to the RTS/CTS problem. Previous fixes (like
my TurboCTS) only fixed some of the symptoms of the problem.
INSTALLATION:
Serial FIX is composed of two parts, a program for the AUTO folder
and a CPX file to be used with the extensible CONTROL (XCONTROL.ACC)
panel.
SERFX20.PRG is the heart of the Serial FIX solution. SERFX20.PRG
is intended to be installed in your AUTO folder, although it can be ran
from the desktop. Serial FIX replaces the current serial routines for
the ST compatible port. The ST compatible port is the only port on the
ST and STe machines, or the Modem 1 port on the MegaSTe and TT
machines.
SERIALFX.CPX is a control panel to be used with the extensible
control panel (XCONTROL.ACC). The CPX is used to lock the serial
routines into using RTS/CTS handshaking, regardless of the desires of a
program. The file SERIALFX.CPX is to be placed in in your folder of
CPX files (often called 'CPX').
OPERATION:
SERFX20.PRG: Once the program has been started (either booted in
the 'AUTO' folder or run from the desktop), no special operations are
needed. The program replaces the system routines and the port speed
and handshaking are set just as they are now, either by terminal
software, CONTROL panel, or the extensible control panel.
SERIALFX.CPX: This program will allow you to lock the handshaking
in RTS/CTS mode. This is often needed because a number of programs
have been written to ignore RTS/CTS mode (like FLASH). If the CPX is
not used to lock the mode on, if the mode is set from the control
panel, and a terminal program is started, very likely, the program
would turn off RTS/CTS. With the mode locked, the program will be
unable to disable RTS/CTS. The CPX will give you the option to save
the current lock setting. Saving the setting will cause the selected
mode to be entered every time the CPX boots up. So, note, to be able
to lock the RTS/CTS mode on, you must use both the SERFX20.PRG and the
SERIALFX.CPX.
MODEM PROBLEMS:
If you are having problems getting RTS/CTS to work with your modem,
you need to check a few things:
1. Modem: You will need to verify that the modem is set up to
use RTS/CTS. For error correcting/compression modems the command us
usually 'AT&K3' to enable RTS/CTS mode. Remember, when you get your
modem working, be sure to save the configuration into the modem with an
'AT&W'. If your modem is a non-error correcting/compression type,
RTS/CTS may not be desired as most of the modems do not really support
RTS/CTS, and besides, it is not necessary since the modem does not
buffer data. For most modems, if you wish to check to see what the
settings are, use a terminal program and type 'AT&V' and the modem will
display the current settings. Verify the &K option has a 3 shown (i.e.
&K3) is shown in the active configuration portion of the display. If
you type the AT&V and the modem replies ERROR, then that command is not
supported and you will have to check the documentation with the modem
to determine how to verify the setting.
2. Cable: Most manufactured RS232 cables should not be a
problem, but some commercial cables and home built cables may not have
the RTS and CTS pins connected. For RTS/CTS to work, the RTS pins (pin
4) and CTS pins (pin 5) need to be connected through the cable. If you
want to check the cable and are familiar with the use of a meter in
doing a continuity test, verify that the pin 4s on the two connectors
are connected together, the pin 5's are connected together, and that
the pin 4's are NOT connected to the pin 5's.
3. Software incompatiblity: If you are still having problems, try
removing all other AUTO folder programs and ACCESORIES (except
SERFX20.PRG and XCONTROL.ACC). If things still do not work, you may
have a hardware problem.
4. Hardware Problem: If you have checked everything above, and
RTS/CTS is still not working, you may have a hardware problem. It is
possible that the RTS or CTS circuitry in the computer or in the modem
may have failed. Attempt to use the modem on another computer and/or a
different modem on your computer to verify whether the problem is in
the modem or the computer.
5. Last (and hopefully LEAST) possiblity is that there is a bug
in my software (or an undocumented, possibly undesirable, feature, as
some call it). Let me know if you cannot get SERIALFX to work and I'll
see what help I can provide.
PROGRAMMING INFORMATION:
This version of the software is fully XBRA compliant. When the
software starts and installs the replacement routines, the TOS version
is checked to determine the best method of installation (read for
maximum speed). Under TOS 1.0, traps 1, 13, and 14 are intercepted and
processed. Under TOS 1.2, 1.4, and 1.6 (non-Bconmap() compatible
machines after 1.2), the xcon vector table is used, and only trap 14 is
used to receive Rsconf() calls. Under Bconmap() compatiable systems,
bconmap (port 6) and xcon vectors are modified so that no trap
interception is necessary.
Other software can be used to lock or unlock the serial routines.
To perform this function, look in the cookie jar for a 'MDSa' cookie.
The long data byte is a pointer to the following data structure:
struct {
int lockfg; /* RTS/CTS locked flag (bit 1 = locked) */
int (*setlock)(); /* Routine to set lock status */
char bcon[6]; /* Flag for following table = "BCON" */
int (*auxistat)(); /* AUX port input status routine */
int (*auxin)(); /* AUX port input character routine */
int (*auxostat)(); /* AUX port output status routine */
int (*auxout)(); /* AUX port output character routine */
long (*rsconf)(); /* Rsconf() routine for AUX port */
struct *iorec; /* Pointer to Iorec buffer */
} serfx;
The lock status is set by pushing an integer with the value of either 0
(to disable lock) or 1 (to enable) and then jsr'ing the setlock routine
(i.e. (*serfx->setlock)(1) to enable the lock). The call can be made
in user or super mode.
Direct access to the ST compatible serial port. This is intended to
provide faster access to serial routines on systems running an older
version of TOS. Access to the routines is the same as accessing
current Bconmap compatible routines.
WRAP UP
As normal, PLEASE let me know if you have any problems with the
program. I have attempted to make the program as compatible with other
software as possible.
Bill Penner
3235 Wright Avenue
Bremerton, WA 98310-4753
Phone: (206) 373-4840 (before 9pm Pacific)
GEnie: BPENNER
CHANGES SINCE VERSION 1.0
Two bugs that were discovered were fixed. Both bugs would only
occur if no cookie jar was found. One bug resulted in creating a
cookie jar that was full of garbage and the other would not build a
cookie jar. The second bug was the more common, which would result in
the CPX reporting that the program was not loaded. Running the
SERIALFX.PRG program a second time often worked to fix the problem.
CHANGES SINCE VERSION 1.1
Two more bugs were found that prevented the software from being
loaded on some systems and a couple of obscure problems were fixed.
SERPATCH and TOS14FIX routines have been incorporated to make SERIALFX
a universal patch. A new vector table was added for people who wanted
to have faster access to the original ST serial port so that software
can directly interface to the serial routines (as with newer versions
of TOS) to bypass the overhead in exception vector execution.
SERFX20.PRG replaces the older SERIALFX.PRG.