home *** CD-ROM | disk | FTP | other *** search
- ;**************************************************************************
- ;
- ; Microsoft Mail Script File
- ;
- ; Filename: mwave.mdm
- ; Date : March 2, 1995
- ; Script : Script file for IBM MWAVE Modem
- ; Version : V1.1
- ;
- ; 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)
- ;
- ; Note: This script was written by a customer using the IBM Thinkpad
- ; 755CD with the MWave modem. It is unsupported by Microsoft.
- ;
- ;**************************************************************************
-
-
- INITIALIZE:
- title "MWAVE 9600"
-
- baud 9600 ; set the baud rate
- display " Baud Rate : 9600"
- return 0
-
- RESET:
- baud 9600 ; set the baud rate
- display " Baud Rate : 9600"
-
- clearrsp ; clear out any ring signals
- sendln "AT&F" ; reset modem to default settings
- wait 3
- waitrsp 3
-
- if (response = "0^M")
- return 0
- else
- return 4
-
-
-
- CALL:
- $attempts = 5
-
- init_retry:
- sendln "AT&F" ; reset modem to default settings
- wait 2
- waitrsp 1
-
- if ("0" isin response)
- goto reset_okay
-
- if ("OK" isin response)
- {
- reset_okay:
- sendln "ATE0L0M1V0X4&C1&D1&N0&U1\\Q3%C0%E0\\N0"
- wait 3
- waitrsp 4
-
- if ("0^M" isin response)
- {
- sendln 'AT"H0'
- wait 5
- waitrsp 5
- clearrsp
- sendln "ATS0=0S7=60S9=6S10=50S12=50S28=12"
- wait 4
- waitrsp 3
- if (response = "0^M")
- goto do_call
-
- }
- }
- dec $attempts
- if ($attempts > 0)
- goto init_retry
-
- return 4
-
-
-
- do_call:
- $ret = 8 ; set default ret code to "no answer"
-
- waitrsp 2 ; clear the response buffer
-
- if (response = "2^M")
- {
- display ">>>Incoming Call - Abord Send<<<"
- return $ret
- }
- clearrsp
-
- display "JUST ABOUT TO SEND ATD STRING"
- echo 0 ; do not display phone number
-
- sendln "ATD" + dial_mode + phone_number ; execute the dial up
-
- clearrsp
-
- wait 2
- waitrsp 4
-
- echo 1 ; turn echo back on
-
- display "EVERYTHING IS SET; WAITING FOR RESULT"
-
-
- 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 ("10^M" isin response)
- {
- display ">>> CONNECT 2400 <<<"
- $ret = 10
- }
- else if (response = "11^M")
- {
- display ">>> CONNECT 4800 <<<"
- $ret = 11
- }
- else if ("12^M" isin response)
- {
- display ">>> CONNECT 9600 <<<"
- $ret = 12
- }
- else if ("13^M" isin response)
- {
- display ">>> CONNECT 9600 <<<"
- $ret = 12
- }
- else if ("14^M" isin response)
- {
- display ">>> CONNECT 19200 <<<"
- $ret = 12
- }
- else if ("28^M" isin response)
- {
- display ">>> CONNECT 38400 <<<"
- $ret = 12
- }
- else if ("41^M" isin response)
- {
- display ">>> CONNECT 38400 <<<"
- $ret = 12
- }
-
-
- 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 not
- sendln "ATD" ; 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 = "11^M")
- {
- display ">>> CONNECT 4800 <<<"
- $ret = 11
- }
- else if (response = "12^M")
- {
- display ">>> CONNECT 9600 <<<"
- $ret = 12
- }
- else if (response = "14^M")
- {
- display ">>> CONNECT 19200 <<<"
- $ret = 12
- }
- else if (response = "28^M")
- {
- display ">>> CONNECT 38400 <<<"
- $ret = 12
- }
-
- if ($ret = 8) ; if there was no answer, make sure that
- { ; modem goes back on hook. There seems
- dtr 0 ; to be a problem with these modems
- wait 1 ; where the modem can sometimes refuse
- dtr 1 ; to hang up if ATA fails to establish
- } ; a connection.
- }
-
- 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
-
- waitrsp 3 ; wait for response from modem
-
- 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
-
-
-
-
-
-