home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
High Voltage Shareware
/
high1.zip
/
high1
/
DIR31
/
KERM313.ZIP
/
PENRIL.SCR
< prev
next >
Wrap
Text File
|
1993-07-07
|
6KB
|
147 lines
; File PENRIL.SCR -- minor modification of Christine's HAYES.SCR.
; To be used with MS-DOS Kermit 3.11 or later.
;
; Stored in Kermit Distribution as MSMPENRIL.SCR; rename to PENRIL.SCR
; if necessary so the DIAL macro can find it. Place this file in your
; current directory or in any directory in your DOS PATH, and then set the
; DOS environment variable, MODEM, to be PENRIL. Give the following command
; at the DOS prompt before starting Kermit, or add it to your AUTOEXEC.BAT
; file:
;
; SET MODEM=PENRIL
;
; This MS-DOS Kermit script program is for dialing Penril Alliance V.32
; modems and compatibles. It will probably work with the V.32bis version of
; this modem, but this has not been tested. The Penril, like most V.32
; modems, is Hayes-compatible up to the point that one starts dealing with
; buffering, error-correction, and compression modes. Expects variable %\1
; to contain the phone number; this is done by the DIAL macro defined in
; MSKERMIT.INI. Items marked by "***" might need editing.
;
; Uses ATD (modem's default dialing method) to dial the number.
; Force tone dialing by including T as first character of phone
; number, or pulse dialing by including P as first character.
;
; Sets SUCCESS flag if dialing succeeds, sets FAILURE flag
; if it fails.
;
; Author: John C. Klensin, August 1992
; Adapted from HAYES.SCR by Christine M. Gianone (July 1991).
; Requires MS-DOS Kermit 3.11 or later.
;
; The normal DTE <-> DCE speed of this modem is 38.4 Kbps, regardless of
; the line or character speed. Set that number here, regardless of what
; the DIALUPS file says. However, this may exceed the speed at which
; MSDOS computers can deal with characters and should be reduced if necessary.
;
echo Using Penril Alliance V.32 modem\13\10 ; comforting in multimodem environ
set speed 38400 ;****
;
set flow rts ; Nothing else works.
def errfail echo \%1,hangup,goto fail ; Macro to handle failures.
if < VERSION 310 errfail {MS-DOS Kermit 3.10 or later required.}
set input timeout proceed ; Allow IF SUCCESS, IF FAILURE
set input echo off ; Don't echo the modem test/init
output A ; Send AT, use word result codes.
output T ; Initialization chars have to be dribbled
output {\38} ; at this modem
output F
output \13 ; at least through end of first command.
input 2 OK ; Modem should say "OK"
if fail errfail {Turn on or connect your modem!}
pause ; Continue initializing
output AT ; Very loud speaker, turn it down
output L1
output \13
input 2 OK
pause
output AT
output {\92} ; RTS/CTS, bidirectional
output Q1
output {\44}1 ; => \Q,1,1
output \13
input 2 OK
if fail errfail {Unable to initialize modem}
clear ; Clear input buffer
;
if not equ {\%1} {=} goto dialnow ; This provides for initialization only
echo Modem initialization complete, no number to dial
end 0
:DIALNOW
set count 5 ; Set up dialing retry counter
set input echo on ; From now on, show what happens
echo Dialing \%1, wait...
pause 1
goto dial ; 1st time, skip Redialing message
:REDIAL
set alarm 30
pause 30 ; Wait 30 seconds before redialing.
if not alarm errfail {Dialing canceled.}
echo Redialing... ; Message for redialing.
pause 1
:DIAL
output ATD\%1\13 ; Dial the number (ATDT or ATDP)
input 10 \10 ; ignore the immediate LF
:GETMSG
set alarm 130 ; Detect keyboard interruptions.
input 60 \10 ; Wait for the linefeeds...
input 40 \10 ; that surround response message.
if success goto gotmsg ; Got a message.
if alarm errfail {No response from modem.} ; No response in a long time
hangup ; User interrupted from keyboard,
if count goto redial ; so try again right away
goto fail ; die here if over count
; Warning: At least in terms of what the test machine sees, the Penril
; is a little arbitrary about how many line feeds appear between CONNECT NNN
; and the protocol stuff. So the logic below deals with it by time, rather
; than really expecting the V42/MNP/BUFFER stuff to be executed.
:GOTMSG
reinput 0 CONNECT ; Got message, was it CONNECT?
if success goto cspeed ; Yes, wait for BUFFER, MNP, or V.42
reinput 0 ERROR ; No, check for command error.
if success errfail {Modem command error.}
reinput 0 NO CARRIER ; NO CARRIER?
if success goto busy ; Treat like BUSY.
reinput 0 BUSY ; BUSY?
if success goto busy ; Go wait a bit, then dial again.
reinput 0 V42 ; Protocol stuff (V.42/V.42bis)
if success goto speed ; modem ready, set speed
reinput 0 MNP ; MNP, ignore
if success goto speed ; modem ready, set speed
reinput 0 BUFFER ; remaining case in auto-reliable
if success goto speed ; modem ready, set speed
errfail {No dialtone or no answer. Try again later.}
:BUSY
if < \v(count) 2 goto quit ; Don't wait 60 seconds if tries used up.
Echo Busy or No Carrier, will dial again in 30 seconds...
echo Press any key to cancel...
hangup ; Hang up.
:AGAIN
if count goto redial ; Then go redial.
:QUIT
errfail {It never answers! I give up.} ; Too many tries.
; The following block is retained for compatibility for HAYES.SCR. Since
; this modem buffers (always retains the same DCE<->DTE speed), the computer
; should not speed-match and the next section is a no-op.
:CSPEED
pause 2 ; wait for protocol announcement
:SPEED ; Connected!
echo \7 ; Celebrate with a beep.
define errfail ; Erase ERRFAIL definition
end 0 ; Finished, return success code.
:FAIL ; Failed, return failure code.
define errfail ; Erase ERRFAIL definition
end 1