'=========================================================================== ' Subject: DIAL-UP CHAT (CONNECT) Date: 04-22-97 (21:08) ' Author: Mike G. Stewart Code: QB, QBasic, PDS ' Origin: mikegs@juno.com Packet: MODEM.ABC '=========================================================================== 'Connectt.bas: Dial-Up Chat 'Program written by Mike Stewart '(C) 1997 M Stewart 'Public Domain 'I changed the program CONNECT.BAS a lot to make this program. 'This program can be changed a lot. 'Use it to start your own network. 'Just include my name in the program that you write, in the credits or something. 'Have Fun! :-) DECLARE SUB Keyscan () DECLARE SUB Delay (td!) DECLARE SUB dial (Num$) COMMON SHARED ModemIn$ PRINT "Call Mike Stewart at (509) 292-8751 to Confirm Dial-Up Chat is Active." PRINT "Press any key to continue with Dial-Up Chat." SLEEP INPUT "Is (509) 292-8751 Long Distance? ", l$ INPUT "Do You Have Call Waiting? ", c$ LET c$ = UCASE$(c$) LET l$ = UCASE$(l$) ON ERROR GOTO Handler ON COM(2) GOSUB GetBuf COM(2) ON IF l$ = "Y" AND c$ = "Y" THEN dial ("*70,1-(509)292-8751") 'phone numbers according to line settings IF l$ = "N" AND c$ = "Y" THEN dial ("*70,292-8751") IF l$ = "Y" AND c$ = "N" THEN dial ("1-(509)292-8751") IF l$ = "N" AND c$ = "N" THEN dial ("292-8751") DO CALL Keyscan ' You're online now. Stay in this loop forever. LOOP Handler: RESUME NEXT GetBuf: InStr$ = INPUT$(LOC(1), #1) DO BackSpace = INSTR(InStr$, CHR$(8)) IF BackSpace THEN MID$(InStr$, BackSpace) = CHR$(29) END IF LOOP WHILE BackSpace DO LineFeed = INSTR(InStr$, CHR$(10)) IF LineFeed THEN InStr$ = LEFT$(InStr$, LineFeed - 1) + MID$(InStr$, LineFeed + 1) END IF LOOP WHILE LineFeed ModemIn$ = RIGHT$(ModemIn$ + InStr$, 10240) PRINT (InStr$); RETURN SUB Delay (td!) TimeDelay! = (TIMER + td!) MOD 86400 WHILE TimeDelay! > TIMER: WEND END SUB SUB dial (Num$) OPEN "COM2:9600,N,8,1" FOR RANDOM AS #1 CLS LOCATE 25, 40: PRINT "ALT-X to exit.." LOCATE 1, 1, 1 PRINT #1, "ATZ" CALL Delay(1.25) PRINT #1, "ATS7=45 S0=0 V1 M0" ' modem initialization string CALL Delay(1.25) DO CALL Delay(1) PRINT "Dialing ....." PRINT #1, "atdt" + Num$ + CHR$(13) TimeDelay! = TIMER + 40 DO UNTIL TIMER > TimeDelay! CALL Keyscan test = INSTR(RIGHT$(ModemIn$, 20), "CONNECT") IF test THEN result = -1: EXIT DO test = INSTR(RIGHT$(ModemIn$, 5), "BUSY") IF test THEN result = 0: EXIT DO test = INSTR(RIGHT$(ModemIn$, 12), "NO DIALTONE") IF test THEN result = 0: CALL Delay(2): EXIT DO test = INSTR(RIGHT$(ModemIn$, 11), "NO CARRIER") IF test THEN result = 0: CALL Delay(2): EXIT DO LOOP LOOP UNTIL result FOR t = 1 TO 5 ' It answered! ring the alarm! SOUND 750, 2 SOUND 550, 2 SOUND 650, 2 IF INKEY$ <> "" THEN EXIT FOR NEXT END SUB SUB Keyscan a$ = INKEY$ IF a$ = CHR$(0) + CHR$(45) THEN CLOSE : END PRINT #1, a$; END SUB