PC Gen: Contents of Modem Script File USRHST.MDMLast reviewed: October 21, 1994Article ID: Q80268  | 
	
	
 
The information in this article applies to:
 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
	
	 | 
	
	Additional reference words: 2.10 2.1 2.10e 
 © 1998 Microsoft Corporation. All rights reserved. Terms of Use.  |