' STRT_1.BAS GRMEYER v1.1 10/30/93 ' Automates logging onto GEnie's ST RT BB, Library, RTC, or email ' If this is accidently invoked while online it will MOVE to the destination ' REQUIRES: ' - Dialing entry of "GEnie" with correct phone number. Note that settings ' and autologon for this entry are ignored, they're handled by script. ' - ASCII file named GENIE.PWD in Storm directory. Contains ACCOUNT & PASSWD ' each on own line terminated with a carriage return ' ' == Initialzation == READ n DIM p$(n),c$(n) FOR x = 1 to n READ p$(x),c$(x) NEXT x ' IF CARRIER THEN title$=" Move to... " ELSE title$=" Logon to... " ENDIF ' == Mainline == dest = POPUP (1,title$,p$(1),p$(2),p$(3),p$(4),p$(5)) ' IF dest = 5 THEN GOTO EXIT:' 'cancel' was the selection IF CARRIER THEN SEND c$(dest) ELSE gosub logon ENDIF GOTO EXIT ' ' == Finalization == EXIT: END ' ' == logon subroutine == logon: ' this routine searches the dialing dir for entry "GEnie", gets the ' phone number, then handles the dialing, connecting, and logging on ' we'll jump straight to exit if an error is detected ' entry$="0":' init the entry number of "GEnie" in the dialing dir ' if this stays zero we didn't find the entry temp$="" nent$=SET$("STORM","Dialer","Entries"):' find # of entries in dial dir FAST ON FOR x = 1 to val(nent$) temp$=SET$("DIALDIR",str$(x),"Name") IF temp$ = "GEnie" THEN entry$=str$(x) NEXT x FAST OFF IF entry$="0" THEN TOPW:PRINT "Error: No entry found for GEnie!";:PRINT chr$(7) GOTO EXIT ENDIF ' ' get our genie password and account. If file doesn't exist we'll error off OPEN "r",#1,"GENIE.PWD":' it'd be nice to do a fsfirst() here but oh well INPUT #1,acct$ INPUT #1,pwd$ CLOSE #1 ' ' set up some known settings for GEnie then read STORM.INI for specifics ' about the modem setup DUPLEX HALF BAUD 2400 SBITS 1 PARITY NONE prefix$=SET$("STORM","Modem","Prefix"):' dialing prefix con1$=SET$("STORM","Modem","Connect1") con2$=SET$("STORM","Modem","Connect2") fail1$=SET$("STORM","Modem","Fail1") fail2$=SET$("STORM","Modem","Fail2") timeout=SET("STORM","Modem","Timeout"):' get dialing timeout value IF con1$="" THEN con1$="XXXXXXXXXXXXX":'just in case these are empty IF con2$="" THEN con2$="XXXXXXXXXXXXX":'if they are empty, wait() will IF fail1$="" THEN fail1$="XXXXXXXXXXX":'return too quickly when we use it if fail2$="" THEN fail2$="XXXXXXXXXXX":'later in this routine ' TOPW 1:SEND prefix$+set$("DIALDIR",entry$,"#"):' dial the GEnie number WAIT timeout,con1$,con2$,fail1$,fail2$ IF WAIT(0)=3 OR WAIT(0)=4 THEN TOPW:PRINT "Error: GEnie didn't answer";chr$(7):GOTO EXIT ENDIF IF CARRIER=FALSE THEN TOPW:PRINT "Error: No carrier. (didn't answer?)";chr$(7):GOTO EXIT ENDIF ' SEND "HHH"; WAIT 20,"U#=":REM Wait 20 seconds for prompt IF WAIT(0)=0 THEN TOPW :PRINT "Logon Failed";:PRINT chr$(7):GOTO EXIT DUPLEX FULL :'so password doesn't appear on screen SEND acct$+","+pwd$+","+mid$(c$(dest),2):' strip "M" off dest$ ' The pause ensures that the password is sent before duplex is switched back PAUSE 2:DUPLEX HALF WAIT 30,"continue?":' welcome menu prompt SEND "":' skip it. We're now moving to our destination ' RETURN ' ' == DATA AREA == DATA 5 DATA " Library ","M475;3" DATA " BB ","M475;1" DATA " RTC ","M475;2" DATA " Mail ","M200" DATA " ",""