PC Gen: Contents of Modem Script File USRHST.MDM (80268)
The information in this article applies to:
- Microsoft Mail for PC Networks 2.1e
This article was previously published under Q80268 SUMMARY
The following is the contents of the Microsoft Mail version 2.1e modem
script file USRHST.MDM, which can be compiled with SCRCOMP.EXE:
;*********************************************************************
;
; Microsoft Mail Script File
;
; Filename: usrhst.mdm
; Date : Oct 26, 1990
; Script : Script file for USRobotics Courier HST modems
;
; This modem has a bank of DIP-Switches on the back. These should
; be set as follows (note that switches 1 and 6 differ from factory
; settings):
;
; QUAD 1 2 3 4 5 6 7 8 9 10
; ON XXXX X X X X
; OFF X X X X X X
;
;
; This script file contains the standard modem setup strings used
; by the External, Transmit and Listen programs. There are five
; procedures defined in this script file for setting up the modem and
; for connecting to a remote External machine.
;
; The modem setup strings used here will be adequate for most
; people but there may be some changes required if you are dialing
; overseas and require a longer wait for Carrier Detect (S7 register)
; or if you wish to change the speaker volume. Note that if you used
; the -Innn option in version 1.0 or 2.0 that you will have to modify
; the S7 register and recompile this script file.
;
; Consult your modem manual for more information on setup options.
;
; Script procedures defined:
; INITIALIZE
; RESET
; CALL
; ANSWER
; DISCONNECT
;
; Return codes for External, Transmit, Listen:
; 0 - OK
; 1 - CONNECT 300
; 2 - not defined
; 3 - NO CARRIER
; 4 - ERROR
; 5 - CONNECT 1200
; 6 - not defined
; 7 - BUSY
; 8 - NO ANSWER
; 9 - not defined
; 10 - CONNECT 2400
; 11 - not defined
; 12 - CONNECT 9600 (high speed connection)
;
;
;*********************************************************************
INITIALIZE:
title "USRobotics HST/V.32 Script"
baud 19200 ; set the baud rate
display " Baud Rate : 19200"
$attempts = 5
init_retry:
sendln "ATZ" ; reset modem to default settings
wait 2
waitrsp 1
if ("0" isin response)
goto reset_okay
if ("OK" isin response)
{
reset_okay:
sendln "AT&F&B1&H1&R2&S1E0M1V0X3"
wait 2
waitrsp 3
if ("0^M" isin response)
{
sendln "ATS0=0S10=50&W"
waitrsp 3
if (response = "0^M")
return 0
}
}
dec $attempts
if ($attempts > 0)
goto init_retry
return 4
RESET:
baud 19200 ; set the baud rate
display " Baud Rate : 19200"
sendln "ATZ" ; reset modem to default settings
waitrsp 2
if (response = "0^M")
return 0
else
return 4
CALL:
$ret = 8 ; set default ret code to "no answer"
clearrsp ; clear the response buffer
echo 0 ; do not display phone number
sendln "ATD" + dial_mode + phone_number ; execute the dial up
echo 1 ; turn echo back on
waitrsp 120 ; wait until the modem responds (max
; 2 minutes)
if (response = "1^M")
{
display ">>> CONNECT 300 <<<"
$ret = 1
}
else if (response = "3^M")
{
display ">>> NO CARRIER <<<"
$ret = 8 ; no answer or no connect
}
else if (response = "5^M")
{
display ">>> CONNECT 1200 <<<"
$ret = 5
}
else if (response = "7^M")
{
display ">>> BUSY <<<"
$ret = 7 ; busy
}
else if (response = "10^M")
{
display ">>> CONNECT 2400 <<<"
$ret = 10
}
else if (response = "13^M")
{
display ">>> CONNECT 9600 <<<"
$ret = 12
}
else if (response = "18^M")
{
display ">>> CONNECT 4800 <<<"
$ret = 11
}
else if (response = "14^M")
{
display ">>> CONNECT 300/ARQ <<<"
$ret = 1
}
else if (response = "15^M")
{
display ">>> CONNECT 1200/ARQ <<<"
$ret = 5
}
else if (response = "16^M")
{
display ">>> CONNECT 2400/ARQ <<<"
$ret = 10
}
else if (response = "17^M")
{
display ">>> CONNECT 9600/ARQ <<<"
$ret = 12
}
else if (response = "19^M")
{
display ">>> CONNECT 4800/ARQ <<<"
$ret = 11
}
return $ret ; return connect baud rate to
; application
ANSWER:
$ret = 8 ; set default ret code to "no answer"
waitrsp 1 ; see if phone is ringing
if (response = "2^M") ; 2 is numeric form of "RING"
{
if (listen = 1) ; see if Listen program is running or
sendln "ATD" ; not answer phone in originate mode
; (Listen)
else
sendln "ATA" ; answer the phone normally
waitrsp 120 ; wait for return code from modem (max
; 2 minutes)
if (response = "1^M")
{
display ">>> CONNECT 300 <<<"
$ret = 1
}
else if (response = "3^M")
{
display ">>> NO CARRIER <<<"
$ret = 8 ; no answer or no connect
}
else if (response = "5^M")
{
display ">>> CONNECT 1200 <<<"
$ret = 5
}
else if (response = "10^M")
{
display ">>> CONNECT 2400 <<<"
$ret = 10
}
else if (response = "13^M")
{
display ">>> CONNECT 9600 <<<"
$ret = 12
}
else if (response = "18^M")
{
display ">>> CONNECT 4800 <<<"
$ret = 11
}
else if (response = "14^M")
{
display ">>> CONNECT 300/ARQ <<<"
$ret = 1
}
else if (response = "15^M")
{
display ">>> CONNECT 1200/ARQ <<<"
$ret = 5
}
else if (response = "16^M")
{
display ">>> CONNECT 2400/ARQ <<<"
$ret = 10
}
else if (response = "17^M")
{
display ">>> CONNECT 9600/ARQ <<<"
$ret = 12
}
else if (response = "19^M")
{
display ">>> CONNECT 4800/ARQ <<<"
$ret = 11
}
}
return $ret ; return connect baud rate to
; application
DISCONNECT:
wait 2 ; wait 2 seconds
send "+++" ; send escape sequence to put modem
; back to command state
wait 2 ; wait 2 seconds
clearrsp ; clear the response buffer
sendln "ATH0" ; hang up the phone
waitrsp 3 ; wait for a response
if (response != "0^M") ; if hang up failed, drop DTR to force
; hang up
{
DTR 0 ; drop DTR to reset modem
wait 2 ; some modems require a delay here
DTR 1 ; raise DTR
clearrsp ; clear response buffer
}
return 0 ; always return OK
Modification Type: | Major | Last Reviewed: | 11/4/1999 |
---|
Keywords: | KB80268 |
---|
|