'=========================================================================== ' Subject: BBS DIAL-UP Date: 06-24-97 (21:26) ' Author: Michael G. Stewart Code: QB, QBasic, PDS ' Origin: mikegs@juno.com Packet: MODEM.ABC '=========================================================================== DECLARE SUB checkname (name$) DECLARE SUB checkpass (name$, pass$) DECLARE SUB Keyscan () COMMON SHARED ModemIn$ a% = FRE(-2) CLEAR , , a% CLS PRINT "Press any key to activate Arrowhead BBS" SLEEP OPEN "Com2:9600,N,8,1,BIN" FOR RANDOM AS #1 LEN = a% PRINT #1, "ATA" SLEEP PRINT #1, "Arrowhead BBS"; CHR$(13) PRINT #1, "(C) 1997 Arrowhead Corporation, Inc."; CHR$(13) PRINT #1, "System Operator: Mike Stewart"; CHR$(13) login: PRINT #1, "Input Name: "; LINE INPUT #1, name$ checkname name$ IF name$ <> "Guest" THEN PRINT #1, CHR$(13); "Input Password: " LINE INPUT #1, pass$ END IF checkpass name$, pass$ PRINT #1, CHR$(13) mainmenu: COLOR 14 PRINT #1, "Welcome to the Arrowhead Bulliten Board Service!"; CHR$(13) COLOR 12 PRINT #1, "This BBS is still under construction!"; CHR$(13) COLOR 3 PRINT #1, "Thank you for your tolerence."; CHR$(13); CHR$(13) COLOR 15 PRINT #1, "Arrowhead BBS Main Menu:"; CHR$(13) PRINT #1, "1) Sysop Chat"; CHR$(13) PRINT #1, "2) E-Mail Menu"; CHR$(13) PRINT #1, "3) Quit"; CHR$(13) PRINT #1, "Your Choice: " INPUT #1, a$ IF a$ = "1" THEN GOSUB sysopchat IF a$ = "2" THEN GOSUB mailmenu IF a$ = "3" THEN GOSUB quit GOSUB mainmenu mailmenu: COLOR 15 PRINT #1, CHR$(13) IF name$ = "Guest" THEN GOSUB mainmenu PRINT #1, "Arrowhead BBS E-Mail Menu:"; CHR$(13) PRINT #1, "1) Read E-Mail"; CHR$(13) PRINT #1, "2) Write E-Mail"; CHR$(13) PRINT #1, "3) Delete E-Mail"; CHR$(13) PRINT #1, "4) Main Menu"; CHR$(13) PRINT #1, "5) Quit"; CHR$(13) INPUT #1, a$ IF a$ = "1" THEN GOSUB readmail IF a$ = "2" THEN GOSUB writemail IF a$ = "3" THEN GOSUB clearmail IF a$ = "4" THEN GOSUB mainmenu IF a$ = "5" THEN GOSUB quit GOSUB mailmenu readmail: OPEN name$ FOR INPUT AS #2 DO WHILE NOT EOF(2) DO WHILE rec$ <> "End of Message" LINE INPUT #2, rec$ PRINT #1, rec$; CHR$(13) LOOP IF EOF(2) THEN EXIT DO PRINT #1, "Press any key to view next message."; CHR$(13) INPUT #1, a$ LOOP PRINT #1, "End of E-Mail File"; CHR$(13) SLEEP 3 CLOSE #2 GOSUB mailmenu writemail: PRINT #1, "Users to write to:"; CHR$(13) PRINT #1, "1) Jerred Bell"; CHR$(13) PRINT #1, "2) Mike Stewart (SysOp)"; CHR$(13) PRINT #1, "3) Internet E-Mail (via Juno.com)"; CHR$(13) PRINT #1, "4) Main Menu"; CHR$(13) PRINT #1, "5) E-Mail Menu"; CHR$(13) PRINT #1, "6) Quit"; CHR$(13) INPUT #1, a$ IF a$ = "1" THEN file$ = "Jerred" IF a$ = "2" THEN file$ = "Mike" IF a$ = "3" THEN file$ = "c:\juno\bbs.txt" IF a$ = "4" THEN GOSUB mainmenu IF a$ = "5" THEN GOSUB mailmenu IF a$ = "6" THEN GOSUB quit IF VAL(a$) > 6 THEN GOSUB writemail OPEN file$ FOR APPEND AS #2 PRINT #2, "Arrowhead BBS E-Mail From: "; name$ PRINT #1, "Subject" LINE INPUT #1, SUB$ PRINT #1, CHR$(13) PRINT #2, "Subject: "; SUB$ PRINT #2, "Date & Time: "; DATE$; "&"; TIME$ PRINT #2, "" PRINT #1, "You have 20 lines to write on, press enter to go"; CHR$(13) PRINT #1, "to the next line. You can't go back to another line!"; CHR$(13) PRINT #1, "Type 'End of Message' on one line to end!"; CHR$(13) DO a% = a% + 1 IF a% = 20 THEN EXIT DO LINE INPUT #1, mes$ PRINT #2, mes$ IF mes$ = "End of Message" THEN EXIT DO LOOP PRINT #1, "Message Sent"; CHR$(13) PRINT #2, "" CLOSE #2 SLEEP 2 GOSUB mailmenu clearmail: PRINT #1, "All E-Mail Cleared"; CHR$(13) OPEN name$ FOR OUTPUT AS #2 CLOSE #2 SLEEP 2 GOSUB mailmenu sysopchat: COLOR 7 PRINT #1, "Please Wait...."; CHR$(13) DO UNTIL INKEY$ <> "" BEEP SLEEP 1 LOOP PRINT #1, "Sysop Chat Active"; CHR$(13) PRINT #1, "Press [ESC] to Quit Sysop Chat"; CHR$(13) CLS ON ERROR GOTO Handler ON COM(2) GOSUB GetBuf COM(2) ON DO CALL Keyscan ' You're online now. Stay in this loop forever. LOOP Handler: RESUME NEXT GetBuf: instr$ = INPUT$(LOC(1), #1) IF instr$ = CHR$(27) THEN GOSUB quitsysopchat 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 quitsysopchat: COM(2) OFF ON ERROR GOTO 0 GOSUB mainmenu quit: PRINT #1, "Closing Connection..." PRINT #1, "Thank You for using Gascan BBS!" CLOSE #1 END SUB checkname (name$) IF name$ = "Jerred" THEN EXIT SUB IF name$ = "Mike" THEN EXIT SUB IF name$ = "Guest" THEN EXIT SUB PRINT #1, "Incorrect Login"; CHR$(13) PRINT #1, "Login Name"; checkname name$ END SUB SUB checkpass (name$, pass$) IF name$ = "Jerred" AND pass$ = "kc7psi" THEN EXIT SUB IF name$ = "Mike" AND pass$ = "2928751" THEN EXIT SUB IF name$ = "Guest" THEN EXIT SUB PRINT #1, CHR$(13); "Incorrect password"; CHR$(13) PRINT #1, "Input password" LINE INPUT #1, pass$ checkpass name$, pass$ END SUB SUB Keyscan a$ = INKEY$ PRINT a$; PRINT #1, a$; IF a$ = CHR$(27) THEN CLOSE #1: END END SUB