home *** CD-ROM | disk | FTP | other *** search
- ; ----- COM-AND dial a string of any width
- ; -----------------------------------
- ; This script dials a string of any width, and performs the Alt-R
- ; function, waiting for connect or redial.
- ;
- ; The value in S0, if supplied, establishes the number being dialed.
- ; Modem speed, parity, data and stop bits must be set by the caller.
- ;
- ; Script: R.McG, commenced 9/89
- ; -----------------------------------
- ;
- ; If number is not supplied, query for it
- ;
- IF NULL S0 ; Not passed as parm
- WOPEN 10,1, 13,77 (contrast) Exit
- ATSAY 11, 3 (contrast) "Enter the number to be dialed:"
- ATSAY 12, 3 (contrast) "->"
- ATSAY 13,26 (contrast) " Press ESC to exit"
- ATGET 12,6 (contrast) 60 S0
- WCLOSE ; Restore screen under
- IF NULL S0 ; Null entry terminates script
- GOTO EXIT ; No-op
- ENDIF
- ENDIF
- GOTO Start
- ;
- ; Successful connection
- ;
- Done:
- CLOG "DIAL.CMD connect: "*S0
- WCLOSE ; Close open window
- SET SUCCESS ON ; Report success
- SET RDISP ON ; Restore display
- IF FCALLED FRETURN
- EXIT
- ;
- ; Failed DIAL
- ;
- Unavailable:
- HANGUP
- WCLOSE ; Close open window
- SET SUCCESS OFF ; Report success
- SET RDISP ON ; Restore display
- IF FCALLED FRETURN
- EXIT
- ;
- ; General exit (modem not connected yet)
- ;
- Exit:
- WCLOSE ; Close open window
- SET RDISP ON ; Restore display
- SET SUCCESS OFF ; Report success
- IF FCALLED FRETURN
- EXIT
- ;
- ; Initialize values
- ;
- Start:
- TIME S1 ; Redial sequaence start
- S2 = S1 ; THis attempt start
- S3 = S1 ; TIme now
- S4 = "" ; Modem return string
- N0 = 1 ; Attempt #
- N1 = "_RDelay" ; Redial delay
- RFLUSH ; Clear modem buffer
- SET RDISP OFF ; Don't display
- ;
- ; Open a window to show progress
- ;
- WOPEN 5,10 14,70 (default) Unavailable
- ATSAY 5,12 (default) " COM-AND Connect (script) "
- ATSAY 7,12 (default) "Number: "*S0(0:50)
- ATSAY 8,12 (default) "Redial Started: "*S1
- ATSAY 9,12 (default) "Call started: "*S2
- ATSAY 10,12 (default) "Call #: "*N0
- ATSAY 11,12 (default) "Call delay: "*N1
-
- ATSAY 9,40 (default) "Time now: "*S3
- ATSAY 11,40 (default) "Modem: "*S4(0:20)
-
- ATSAY 13,12 (default) "Press space bar to cycle; ESC to cancel"
- ;
- ; Hangup, and transmit the dialing cmd
- ;
- Loop:
- TIME S2 ; Set current time
- ATSAY 9,28 (default) S2 ; Display time
- ATSAY 10,28 (default) N0 ; Display attempt #
- ATSAY 10,40 (default) "Hanging up"
- TRANSMIT "_MESCa"&"" ; Wake up the modem
- TRANSMIT "_MHANg"&"" ; Hangup
-
- ATSAY 10,40 (default) "Dialing "
- PAUSE 5 ; Wait for modem to clear
- TRANS "_DPRE"& S0& ""& "_DSUF"& "" ; Ensure trailing blanks deleted
- ;
- ; Wait for a response from the modem
- ;
- ATSAY 10,40 (default) "Waiting "
- SET TIMER (0)
- Waiting:
- TIME S3 ; Set current time
- ATSAY 9,56 (default) S3 ; Display time
- IF HITKEY GOTO Keyhit ; Skip if
-
- RGET S5 1 1 ; Wait for one char one sec
- IF SUCCESS ; We have a char
- IF NULL S5 ; a c/r rtnd
- S4 = "" ; Clear rcv string
- ATSAY 11,47 (default) " "
- ELSE
- S4 = S4*S5
- IF FIND S4 "_MCONN"&"" GOTO Done
- ENDIF
- ENDIF
-
- ATSAY 11,47 (default) S4(0:20)
- TSINCE (0) N2,N3,N4
- N3 = N3*60+N2 ; Total # secs
- IF LT N3 N1 GOTO Waiting ; If delay not exceeded
-
- INC N0 ; Count the try
- GOTO Loop ; Start new attempt
- ;
- ; Keypress is pending
- ;
- Keyhit:
- KEYGET S5 ; Read kbd
- IF STRCMP S5 " " ; Space bar
- INC N0 ; Count last attempt
- GOTO Loop ; .. start new cycle
- ENDIF
- SOUND 100,100 ; Indicate failed
- GOTO Waiting ; Continue otherwise