! Xyplex CCL   $RCSfile: GV_PP_Gold_and_Silver,v $
!             $Revision: 1.3 $
!                 $Date: 1994/01/06 21:41:26 $
!
! AppleTalk Remote Access Script
! For use with Global Village PowerPort/GOLD /SILVER
!
! 06/21/92 AN   Added "pause 30" right after @LABEL 30 to fix a problem
!               with the PowerBook hanging when AUTO_ANSWER was selected.
!               Also changed all &F strings to &F&C1&D1.
! 06/13/92 AN   Always save &C1&D1 to NVRAM in Bronze
!          AN   Fixed bug where PowerPort/Bronze was not being recognized
! 06/06/92 LAL  ORIGINAL RELEASE
! 12/01/92 CTC  Split scripts into a HighSpeed and a LowSpeed script
! 02/15/93 SAP  Included changes for MA's and changed ati0 to ati1
! 09/28/93 JRM  Changed NO DIAL TONE to NO DIALTONE so message is read correctly
!               at labels 9 and 31 and changed \n5 to \\n5 at labels 5 and 63
! 
!
@ORIGINATE
@ANSWER
!
! Talk to the modem at 2400 bps.
!
serreset 2400, 0, 8, 1
!
! First recall the factory configuration
!
settries 0
matchclr
@LABEL 1
matchstr 1 3 "OK\13\10"
write "AT&F&C1\13"
matchread 30
inctries
iftries 2 59
jump 1
!
! Which PowerPort is in use?  High Speed (246) or Low Speed (192)?
!
@LABEL 3
Flush
pause 10
Note "Checking modem type..." 2
matchclr
matchstr 1 68 "192\13\10\13\10"
matchstr 2  4 "163\13\10\13\10"
matchstr 3  4 "004\13\10\13\10"
matchstr 4  4 "246\13\10\13\10"
matchstr 5  4 "066\13\10\13\10"
write "ATI1\13"
matchread 60
note "Not a Global Village PowerPort." 2
jump 59
!
! PowerPort Silver or Gold Continues Here
!
settries 0
@LABEL 4
note "Initializing GVC PowerPort High-Speed..." 2
!
! Talk to the modem at 19,200 bps.  
!
serreset 19200, 0, 8, 1
!
! &f   - recall factory settings
! \q3  - Use RTS/CTS flow control in full-duplex mode
! \k0  - Enter command state but do not send break
! \j0  - Disable port rate adjust
! S0=0 - Don't answer calls
! E0   - Turn command echo off
! \n5  - enable v.42LAPM autoreliable
! %c0  - turn off MNP5 compression
!
HSReset 0 1 0 0 0 1
settries 0
matchclr
@LABEL 5
matchstr 1 6 "OK\13\10"
write "AT&f\\k0\\j0\\q3e0s0=0\\n5%c0\13"
matchread 50
inctries
iftries 2 59
jump 5
!
! If speaker on flag is true, jump to label 8.  Else turn off the speaker
!
@LABEL 6
ifstr 2 8 "1"
pause 5
matchstr 1 8 "OK\13\10"
write "ATM0\13"
matchread 30
jump 59
!
! The modem is ready so enable answering, or originate a call
!
@LABEL 8
pause 5
ifANSWER 30
note "Dialing ^1" 3
write "ATDT^1\13"
!
@LABEL 9
matchstr 1  11 "CONNECT 1200\13\10"
matchstr 2  12 "CONNECT 2400\13\10"
matchstr 3  13 "CONNECT 4800\13\10"
matchstr 4  19 "CONNECT 7200\13\10"
matchstr 5  14 "CONNECT 9600\13\10"
matchstr 6  20 "CONNECT 12000\13\10"
matchstr 7  18 "CONNECT 14400\13\10"
matchstr 8  50 "NO CARRIER\13\10"
matchstr 9  50 "ERROR\13\10"
matchstr 10 52 "NO DIALTONE\13\10"
matchstr 11 53 "BUSY\13\10"
matchstr 12 54 "NO ANSWER\13\10"
matchread 700
jump 59
!
! Notice that all we do for different connect speeds is issue a 
! "CommunicatingAt" command.  Remember, we locked the interface speed
! to 19,200 bps so we don't want to reset the serial speed after we connect.
! CommunicatingAt tells ARA what the actual line speed is so that it
! can set it's timers appropriately.  I guess your performance would be
! sub-optimal if you don't set this...
!
@LABEL 11
note "Communicating at 1200 bps." 2
CommunicatingAt 1200
jump 15
!
@LABEL 12
note "Communicating at 2400 bps." 2
CommunicatingAt 2400
jump 15
!
@LABEL 13
note "Communicating at 4800 bps." 2
CommunicatingAt 4800
jump 15
!
@LABEL 19
note "Communicating at 7200 bps." 2
CommunicatingAt 7200
jump 15
!
@LABEL 14
note "Communicating at 9600 bps." 2
CommunicatingAt 9600
jump 15
!
@LABEL 20
note "Communicating at 12000 bps." 2
CommunicatingAt 12000
jump 15
!
@LABEL 18
note "Communicating at 14400 bps." 2
CommunicatingAt 14400
jump 15
!
! Set CTS handshaking ON in the serial port (that's the 1 in the HSReset
! command below )
!
@LABEL 15
HSReset 0 1 0 0 0 1 
ifANSWER 16
pause 30
@LABEL 16
exit 0
!
! @ANSWER
! Set up the modem to answer
!
@LABEL 30
write "ATS0=1\13"
matchstr 1 31 "OK\13\10"
matchread 30
jump 59
!
@LABEL 31
matchstr 1  32 "RING\13\10"
matchstr 2  11 "CONNECT 1200\13\10"
matchstr 3  12 "CONNECT 2400\13\10"
matchstr 4  13 "CONNECT 4800\13\10"
matchstr 5  19 "CONNECT 7200\13\10"
matchstr 6  14 "CONNECT 9600\13\10"
matchstr 7  20 "CONNECT 12000\13\10"
matchstr 8  18 "CONNECT 14400\13\10"
matchstr 9  50 "NO CARRIER\13\10"
matchstr 10 50 "ERROR\13\10"
matchstr 11 52 "NO DIALTONE\13\10"
matchstr 12 53 "BUSY\13\10"
matchstr 13 54 "NO ANSWER\13\10"
matchread 700
jump 31
!
@LABEL 32
userhook 1
note "Answering phone..." 2
jump 31
!
! 50: error messages
!
@LABEL 50
exit -6021
!
@LABEL 52
exit -6020
!
@LABEL 53
exit -6022
!
@LABEL 54
exit -6023
!
@LABEL 59
exit -6019
!
! Hang up the modem
!
@HANGUP
@LABEL 60
settries 0
serreset 19200, 0, 8, 1
HSReset 0 1 0 0 0 1
@LABEL 61
!
SBreak
pause 20
Flush               ! prevent disconnect garbage
write "\13"         ! start on a clean line
@LABEL 96
matchclr
matchstr 1 97 "OK\13\10"
write "AT\13"
matchread 30
inctries
iftries 3 59
jump 96
@LABEL 97
settries 0
@LABEL 98
matchclr
matchstr 1 62 "OK\13\10"
matchstr 2 62 "NO CARRIER\13\10"
write "ATH\13"
matchread 100
inctries
iftries 3 59
jump 98
@LABEL 62
settries 0
!
! recall the factory settings. (see note at top of script)
!
@LABEL 63
matchclr
matchstr 1 65 "OK\13\10"
pause 15
write "AT&f&C1\\V2w1\\k0\\j0\\q3e0s0=0\\n5%c0\13"
matchread 50
inctries
iftries 3 59
jump 63
!
@LABEL 65
exit 0
!
!
!
! ------------------- POWERPORT/BRONZE -------------------
!
! The user is attempting to run the High speed script on a Bronze, notify
! the user, log the msg and exit with "Modem not responding" error.
!
@LABEL 68
note "Incorrect script file, please use GVC PowerPort/Bronze" 3
jump 59
