BBS: Inland Empire Archive Date: 02-10-93 (02:12) Number: 336 From: ROB MCKEE Refer#: NONE To: CALVIN FRENCH Recvd: NO Subj: Communications through t Conf: (2) Quik_Bas
Hello Calvin!
You wrote in a message to Joe Negron:
JN> > PRINT #1,"+++"
CF>
CF> "+++" doesn't always work. To do it properly, you need to
CF> read the modem register [just a second let me get my
CF> manual] "S2" and see what it is. It's 043 normally, and
CF> that's ASCII "+++". Although I diddn't read the messages,
CF> I picked up on this. This can cause some _very_ annoying
CF> bugs in some cases, I imagine. Hope that helps out,
If it is set to >128 then the Escape Character is disabled on 90% of modems
The proper way to do it is:
During program Start up.. Psuedo code follows
IF NOT CD% then
Print #ComPort,"ATS2?"
GetLine Comport, Theline$
If TheLine$= "ATS2?" then
GetLine Comport, Theline$
If TheLine$= "" then
GetLine Comport, Theline$
End if
endif
ModemEscape$=chr$(val(TheLine$))
if ModemEscape$< chr$(128) then
ModemEscape$= True
else
ModemEscape$= Else
endif
Connection%= False
Else
' Assume "+" since modem is talking to somebody
' and the connection is hot
ModemEscape$="+"
ModemEscape$= True
Connection%= True
Endif
Then to Issue the Escape String
delay!=.55
d!=(Timer + Delay!) mod 86400&
If D!<timer then Do: loop until Int(Timer=0)
Do: Loop until Timer=>d!
? #ComPort, ModemEscape$+ModemEscape$+ModemEscape$;
d!=(Timer + Delay!) mod 86400&
If D!<timer then Do: loop until Fix(Timer)=0
Do: Loop until Timer=>d!
WaitFor ComPort,"OK"
' do what ever you need to do.....
You also have to be aware of modems that use the TIES
escape which is "+++AT" and doesn't use the Hayes Time
guard before or after the Escape sequence. To further
Explain here is a Healthy quote from the HAYES WhitePaper
on TIES which is available from the HAYES BBS:
Hayes Microcomputer.......... GA 1-404-446-6336 96V
As part of his intensive research in the development of the original Hayes
Smartmodem, Dale Heatherington solved this inherent
limitation by surrounding the escape code, a sequence of
characters, with guard times on both sides to alert the
modem that the sequence is distinguished from a typical
string of characters in a file transmission. This escape
sequence
<guard time> <escape code> <guard time>
virtually eliminates the limitation inherent in a data-dependent escape
sequence because of its use of time and because it does not
depend on the probability of character occurrence in a
stream of data. It is virtually impossible for the Hayes
escape sequence with guard time to appear in a file
transfer and cause an unintentional escape using the common
file transfer protocols.
Dale Heatherington's invention led to the issuance of United States Patent
Number 4,549,302, the Modem With Improved Escape Sequence
With Guard Time Mechanism, often called the Hayes '302
Patent, and corresponding patents in a number of
countries. The Hayes '302 Patent ensures that modems
escape or change to the Command Mode of operation reliably
and without the possibility that data alone could trigger
the escape. In over eleven years of use of the Hayes
'302, Hayes has never received a complaint about an
unintentional escape. In addition, this mechanism was
copied by almost everyone in the industry making it one of
the most widely adopted and enduring defacto standards.
This "new" escape mechanism is called Time Independent Escape Sequence or
TIES. The name appears to derive from the way in which the
escape sequence works because it does not make use of time
as the Hayes '302 does. TIES depends entirely upon the
appearance of the escape sequence in the stream of data
being received by the modem. The TIES escape mechanism is
similar to the escape mechanism in use at the time of the
invention of the Hayes '302 in that an escape can be
triggered by the data being sent as part of a file
transfer.
TIES - What Is It?
The simplest escape sequence for TIES is "+++AT<CR>" where
"+++" stands for any escape character and "<CR>"
represents carriage return or any character assigned in
the modem registers by the AT command set which designates
the end of the command. When that series of characters
appears in the data stream, the modem can "escape" or
change from
Receive/Transmit Mode to Command Mode of operation. In effect, what happens
at that point in the transmission is that the flow of data
stops. The flow of data would halt simply because the
characters which make up the escape sequence would have
appeared in the data being transmitted.
Catcha Later , I'll see you on the flip side - Rob
--- timEd/B6
* Origin: Another Quik_Bas Point in Richmond, CA (1:125/411)

Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET