'=========================================================================== ' Subject: PHREAK FONE V2.0 Date: 07-03-97 (12:01) ' Author: Brian Mahocker Code: QB, QBasic, PDS ' Origin: Kain121182@aol.com Packet: MODEM.ABC '=========================================================================== DECLARE SUB EndReport () DECLARE SUB delay2 () DECLARE SUB EndSounds () DECLARE SUB NumbersLD () DECLARE SUB delay (Seconds) DECLARE SUB CloseCom () DECLARE SUB BadModem (which) DECLARE SUB WMS (Status) DECLARE SUB PrintDScreen () DECLARE SUB MakeZeros () DECLARE SUB SelectInput (x, y, which) DECLARE SUB OpenCom () DECLARE SUB DialNumber () DECLARE SUB CoolPrint (x, y, text$, delay, Cursor) DECLARE SUB Inputs () DECLARE FUNCTION TinyInput$ (x%, y%, Original$, Length%, AutoCap%, Allowed$, highest%, lowest%) '$DYNAMIC RANDOMIZE TIMER DIM SHARED Prefixes(2), Port, NumOfPrefixes, Sounds, Sec, Corr, Digit4, Digit4D$ DIM SHARED FoneNumber$, ND, NL, NumOfBusy, HangUp, TotalFN, Quit, NumSkipped CLS 'LET Prefixes(1) = 485 'LET Prefixes(2) = 485 'LET Port = 1 'LET NumOfPrefixes = 2 'LET Sounds = 0 'LET Sec = 30 'LET TotalFN = 1000 'LET ND = 399 'LET NL = 600 'LET NumSkipped = 1 'LET NumOfBusy = 23 'LET HangUp = 0 Inputs 'DialNumber 'EndReport ModemNotOn: BadModem 1 END REM $STATIC SUB BadModem (which) COLOR 15 IF which = 1 THEN PRINT "Modem not on or connected. Please check all connections and make sure" PRINT "it is connected properly and is turned on. After you do that, restart" PRINT "this program." END IF END SUB SUB CloseCom IF Port = 1 OR Port = 2 THEN CLOSE #1 IF Port = 3 THEN CLOSE #1 DEF SEG = 64 'point to BIOS data area POKE &H0, &HF8 'restore "com1:" address in BIOS data area to com1: DEF SEG 'return to DGROUP END IF IF Port = 4 THEN CLOSE #1 DEF SEG = 64 'point to BIOS data area POKE &H2, &HF8 'restore com2: address in BIOS data area to com2: DEF SEG 'return to DGROUP END IF END SUB SUB CoolPrint (x, y, text$, CPdelay, Cursor) RANDOMIZE TIMER FOR CP = 1 TO LEN(text$) LOCATE , , 0 GetCoolPrintColor: LET col = INT(RND * 3) + 1 IF col = lastcol THEN GOTO GetCoolPrintColor IF col = 1 THEN LET co = 7 IF col = 2 THEN LET co = 8 IF col = 3 THEN LET co = 15 LET lastcol = col LET coo$ = INKEY$ IF UCASE$(MID$(text$, CP, 1)) = "A" THEN COLOR co: LOCATE x, y: PRINT "a": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "B" THEN COLOR co: LOCATE x, y: PRINT "B": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "C" THEN COLOR co: LOCATE x, y: PRINT "C": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "D" THEN COLOR co: LOCATE x, y: PRINT "D": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "E" THEN COLOR co: LOCATE x, y: PRINT "e": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "F" THEN COLOR co: LOCATE x, y: PRINT "F": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "G" THEN COLOR co: LOCATE x, y: PRINT "G": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "H" THEN COLOR co: LOCATE x, y: PRINT "H": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "I" THEN COLOR co: LOCATE x, y: PRINT "i": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "J" THEN COLOR co: LOCATE x, y: PRINT "J": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "K" THEN COLOR co: LOCATE x, y: PRINT "K": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "L" THEN COLOR co: LOCATE x, y: PRINT "L": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "M" THEN COLOR co: LOCATE x, y: PRINT "M": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "N" THEN COLOR co: LOCATE x, y: PRINT "N": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "O" THEN COLOR co: LOCATE x, y: PRINT "o": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "P" THEN COLOR co: LOCATE x, y: PRINT "P": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "Q" THEN COLOR co: LOCATE x, y: PRINT "Q": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "R" THEN COLOR co: LOCATE x, y: PRINT "R": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "S" THEN COLOR co: LOCATE x, y: PRINT "S": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "T" THEN COLOR co: LOCATE x, y: PRINT "T": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "U" THEN COLOR co: LOCATE x, y: PRINT "u": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "V" THEN COLOR co: LOCATE x, y: PRINT "V": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "W" THEN COLOR co: LOCATE x, y: PRINT "W": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "X" THEN COLOR co: LOCATE x, y: PRINT "X": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "Y" THEN COLOR co: LOCATE x, y: PRINT "y": LET y = y + 1 IF UCASE$(MID$(text$, CP, 1)) = "Z" THEN COLOR co: LOCATE x, y: PRINT "Z": LET y = y + 1 IF MID$(text$, CP, 1) = "(" THEN COLOR co: LOCATE x, y: PRINT "(": LET y = y + 1 IF MID$(text$, CP, 1) = ")" THEN COLOR co: LOCATE x, y: PRINT ")": LET y = y + 1 IF MID$(text$, CP, 1) = "=" THEN COLOR co: LOCATE x, y: PRINT "=": LET y = y + 1 IF MID$(text$, CP, 1) = "-" THEN COLOR co: LOCATE x, y: PRINT "-": LET y = y + 1 IF MID$(text$, CP, 1) = "@" THEN COLOR co: LOCATE x, y: PRINT "@": LET y = y + 1 IF MID$(text$, CP, 1) = "." THEN COLOR co: LOCATE x, y: PRINT ".": LET y = y + 1 IF MID$(text$, CP, 1) = "^" THEN COLOR co: LOCATE x, y: PRINT CHR$(34): LET y = y + 1 IF MID$(text$, CP, 1) = ":" THEN COLOR co: LOCATE x, y: PRINT ":": LET y = y + 1 IF MID$(text$, CP, 1) = "/" THEN COLOR co: LOCATE x, y: PRINT "/": LET y = y + 1 IF MID$(text$, CP, 1) = "#" THEN COLOR co: LOCATE x, y: PRINT "#": LET y = y + 1 IF MID$(text$, CP, 1) = "?" THEN COLOR co: LOCATE x, y: PRINT "?": LET y = y + 1 IF MID$(text$, CP, 1) = "0" THEN COLOR co: LOCATE x, y: PRINT "0": LET y = y + 1 IF MID$(text$, CP, 1) = "1" THEN COLOR co: LOCATE x, y: PRINT "1": LET y = y + 1 IF MID$(text$, CP, 1) = "2" THEN COLOR co: LOCATE x, y: PRINT "2": LET y = y + 1 IF MID$(text$, CP, 1) = "3" THEN COLOR co: LOCATE x, y: PRINT "3": LET y = y + 1 IF MID$(text$, CP, 1) = "4" THEN COLOR co: LOCATE x, y: PRINT "4": LET y = y + 1 IF MID$(text$, CP, 1) = "5" THEN COLOR co: LOCATE x, y: PRINT "5": LET y = y + 1 IF MID$(text$, CP, 1) = "6" THEN COLOR co: LOCATE x, y: PRINT "6": LET y = y + 1 IF MID$(text$, CP, 1) = "7" THEN COLOR co: LOCATE x, y: PRINT "7": LET y = y + 1 IF MID$(text$, CP, 1) = "8" THEN COLOR co: LOCATE x, y: PRINT "8": LET y = y + 1 IF MID$(text$, CP, 1) = "9" THEN COLOR co: LOCATE x, y: PRINT "9": LET y = y + 1 IF MID$(text$, CP, 1) = " " THEN COLOR co: LOCATE x, y: PRINT " ": LET y = y + 1 'FOR de = 1 TO CPdelay: NEXT de IF coo$ = CHR$(27) THEN END NEXT CP NextL: IF Cursor = 0 THEN LOCATE , , 0 IF Cursor = 1 THEN LOCATE , , 1 END SUB SUB delay (Seconds) LET T! = TIMER LET SpeedDelay! = Seconds DO LET DNKey$ = INKEY$ IF UCASE$(DNKey$) = "S" THEN GOTO SkipNumber1 IF UCASE$(DNKey$) = "Q" THEN GOTO Quit1 IF UCASE$(DNKey$) = "P" THEN DO LET Pause$ = INKEY$ LOOP UNTIL Pause$ <> "" END IF LOOP UNTIL TIMER - T! >= SpeedDelay! SkipNumber1: LET NumSkipped = NumSkipped + 1 LOCATE 5, 33: PRINT " " CoolPrint 5, 33, LTRIM$(STR$(Sec)), 0, 0 GOTO EndOfDelay1Sub Quit1: LET Quit = 1 EndOfDelay1Sub: END SUB SUB delay2 LET TempSec = Sec LET Sec = Sec - 1 DO LET T! = TIMER LET SpeedDelay! = 1 DO LET DNKey$ = INKEY$ IF UCASE$(DNKey$) = "S" THEN GOTO SkipNumber IF UCASE$(DNKey$) = "Q" THEN GOTO Quit IF UCASE$(DNKey$) = "P" THEN DO LET Pause$ = INKEY$ LOOP UNTIL Pause$ <> "" END IF LOOP UNTIL TIMER - T! >= SpeedDelay! CoolPrint 5, 33, LTRIM$(STR$(Sec)), 0, 0 IF HangUp = 1 THEN INPUT #1, SeeIfBusy$ IF SeeIfBusy$ = "BUSY" THEN LET NumOfBusy = NumOfBusy + 1 WMS 5 delay 1 GOTO AfterD2Sub END IF END IF LET Sec = Sec - 1 LOOP AfterD2Sub: LET Sec = TempSec LOCATE 5, 33: PRINT " " CoolPrint 5, 33, LTRIM$(STR$(Sec)), 0, 0 GOTO EndOfDelay2Sub SkipNumber: LET NumSkipped = NumSkipped + 1 LET Sec = TempSec LOCATE 5, 33: PRINT " " CoolPrint 5, 33, LTRIM$(STR$(Sec)), 0, 0 GOTO EndOfDelay2Sub Quit: LET Quit = 1 EndOfDelay2Sub: END SUB SUB DialNumber PrintDScreen LET NL = NumOfPrefixes * 10000: LET ND = 0 LET TotalFN = NL LET Quit = 0 CoolPrint 7, 33, STR$(ND), 0, 0 CoolPrint 8, 33, STR$(NL), 0, 0 OpenCom FOR Prefix = 1 TO NumOfPrefixes LET Number3$ = STR$(Prefixes(Prefix)) CoolPrint 3, 33, LTRIM$(Number3$), 0, 0 FOR Digit4 = 6402 TO 6402 MakeZeros LET FoneNumber$ = LTRIM$(RTRIM$(Number3$)) + "-" + LTRIM$(RTRIM$(Digit4D$)) CoolPrint 4, 33, FoneNumber$, 0, 0 CoolPrint 5, 33, LTRIM$(STR$(Sec)), 0, 0 WMS 1 PRINT #1, "ATZ" delay 1 IF Sounds = 0 THEN : WMS 4: PRINT #1, "ATM0DT" + FoneNumber$ IF Sounds = 1 THEN : WMS 2: PRINT #1, "ATDT" + FoneNumber$ delay 3.5 WMS 3 delay2 IF Quit = 1 THEN CloseCom EndReport END END IF LET ND = ND + 1 LET NL = NL - 1 NumbersLD NEXT Digit4 NEXT Prefix CloseCom EndSounds END SUB SUB EndReport CLS CoolPrint 1, 1, "Phreak Fone - Ver 2.0 - By: Brian Mahocker - Contact me at ^Kain121182@AOL.COM^", 1, 0 CoolPrint 3, 24, "--== Phreak Fone end report ==--", 200, 0 LET ERNOP$ = "Number of prefixes :" + STR$(NumOfPrefixes) LET ERNOFN$ = "Total number of fone numbers :" + STR$(TotalFN) LET ERNOFND$ = "Total number of fone numbers dialed :" + STR$(ND) LET PNND = TotalFN - ND: LET ERNOFNND$ = "Total number of fone numbers not dialed :" + STR$(PNND) LET ERNONS$ = "Number of fone numbers skipped :" + STR$(NumSkipped) LET ERNOPOP$ = "Number of pissed off people :" + STR$(ND - NumOfBusy - NumSkipped) LET ERNOBS$ = "Number of busy signals :" + STR$(NumOfBusy) CoolPrint 5, 22, ERNOP$, 200, 0 CoolPrint 7, 12, ERNOFN$, 200, 0 CoolPrint 8, 5, ERNOFND$, 200, 0 CoolPrint 9, 1, ERNOFNND$, 200, 0 CoolPrint 11, 10, ERNONS$, 200, 0 CoolPrint 12, 13, ERNOPOP$, 200, 0 CoolPrint 13, 18, ERNOBS$, 200, 0 END END SUB SUB EndSounds FOR s1 = 500 TO 1000 SOUND s1, .1 NEXT s1 FOR s2 = 1000 TO 500 STEP -1 SOUND s2, .1 NEXT s2 FOR s31 = 600 TO 750 SOUND s31, .1 NEXT s31 FOR s32 = 600 TO 500 STEP -1 SOUND s32, .1 NEXT s32 FOR s31 = 600 TO 750 SOUND s31, .1 NEXT s31 FOR s32 = 600 TO 500 STEP -1 SOUND s32, .1 NEXT s32 FOR s31 = 600 TO 750 SOUND s31, .1 NEXT s31 FOR s32 = 600 TO 500 STEP -1 SOUND s32, .1 NEXT s32 EndReport END SUB SUB Inputs StartInputs: CLS CoolPrint 1, 1, "Phreak Fone - Ver 2.0 - By: Brian Mahocker - Contact me at ^Kain121182@AOL.COM^", 1, 0 CoolPrint 3, 1, "HoW MaNy PReFiXeS? (Prefix = XXX-6402) Max 15 : ", 200, 1 LET NumOfPrefixes$ = TinyInput$(3, 49, "", 2, 1, "123450", 15, 0) LET NOP = VAL(NumOfPrefixes$): REDIM Prefixes(0), Prefixes(NOP) 'ReDIM CoolPrint 4, 1, "Which modem port? : ", 200, 0 SelectInput 4, 21, 1 CoolPrint 5, 1, "Modem sounds on or off? : ", 200, 0 SelectInput 5, 27, 2 CoolPrint 6, 1, "How many seconds for each number? : ", 200, 1 LET Sec$ = TinyInput$(6, 37, "", 2, 1, "1234567890", 0, 0) CoolPrint 7, 1, "Hang up modem if fone number is busy? : ", 200, 0 SelectInput 7, 41, 4 CoolPrint 8, 1, "Are these settings correct? : ", 200, 0 SelectInput 8, 31, 3 IF Corr = 1 THEN GOTO InputPre IF Corr = 0 THEN GOTO StartInputs InputPre: CLS CoolPrint 1, 1, "Phreak Fone - Ver 2.0 - By: Brian Mahocker - Contact me at ^Kain121182@AOL.COM^", 1, 0 CoolPrint 3, 1, "INPuT PReFiXeS:", 200, 0 LET x = 4 FOR IP = 1 TO VAL(NumOfPrefixes$) LET IPT$ = "#" + STR$(IP) + " - " CoolPrint x, 5, IPT$, 200, 1 IF x = 4 THEN LET TempPre$ = TinyInput$(4, 11, "", 3, 1, "1234567890", 0, 100) IF x = 5 THEN LET TempPre$ = TinyInput$(5, 11, "", 3, 1, "1234567890", 0, 100) IF x = 6 THEN LET TempPre$ = TinyInput$(6, 11, "", 3, 1, "1234567890", 0, 100) IF x = 7 THEN LET TempPre$ = TinyInput$(7, 11, "", 3, 1, "1234567890", 0, 100) IF x = 8 THEN LET TempPre$ = TinyInput$(8, 11, "", 3, 1, "1234567890", 0, 100) IF x = 9 THEN LET TempPre$ = TinyInput$(9, 11, "", 3, 1, "1234567890", 0, 100) IF x = 10 THEN LET TempPre$ = TinyInput$(10, 11, "", 3, 1, "1234567890", 0, 100) IF x = 11 THEN LET TempPre$ = TinyInput$(11, 11, "", 3, 1, "1234567890", 0, 100) IF x = 12 THEN LET TempPre$ = TinyInput$(12, 11, "", 3, 1, "1234567890", 0, 100) IF x = 13 THEN LET TempPre$ = TinyInput$(13, 11, "", 3, 1, "1234567890", 0, 100) IF x = 14 THEN LET TempPre$ = TinyInput$(14, 11, "", 3, 1, "1234567890", 0, 100) IF x = 15 THEN LET TempPre$ = TinyInput$(15, 11, "", 3, 1, "1234567890", 0, 100) LET TempPre = VAL(TempPre$) LET Prefixes(IP) = TempPre LET x = x + 1 NEXT IP LET NumOfPrefixes = VAL(NumOfPrefixes$) LET Sec = VAL(Sec$) DialNumber END SUB SUB MakeZeros IF Digit4 > -1 AND Digit4 < 10 THEN LET Digit4D$ = "000" + LTRIM$(STR$(Digit4)) IF Digit4 > 9 AND Digit4 < 100 THEN LET Digit4D$ = "00" + LTRIM$(STR$(Digit4)) IF Digit4 > 99 AND Digit4 < 1000 THEN LET Digit4D$ = "0" + LTRIM$(STR$(Digit4)) IF Digit4 > 999 AND Digit4 < 10000 THEN LET Digit4D$ = LTRIM$(STR$(Digit4)) END SUB SUB NumbersLD CoolPrint 7, 33, STR$(ND), 0, 0 CoolPrint 8, 33, STR$(NL) + " ", 0, 0 END SUB SUB OpenCom ON ERROR GOTO ModemNotOn IF Port = 1 THEN OPEN "COM1:9600,N,8,1" FOR RANDOM AS #1 IF Port = 2 THEN OPEN "COM2:9600,N,8,1" FOR RANDOM AS #1 IF Port = 3 THEN DEF SEG = 64 'move QuickBASIC segment pointer to BIOS data area POKE &H0, &HE8 'change com1: address in BIOS data area to com3: DEF SEG 'return to QB's DGROUP OPEN "COM1:9600,N,8,1" FOR RANDOM AS #1 END IF IF Port = 4 THEN DEF SEG = 64 'move QuickBASIC segment pointer to BIOS data area POKE &H2, &HE8 'change com2: address in BIOS data area to com4: DEF SEG 'return to DGROUP OPEN "COM2:9600,N,8,1" FOR RANDOM AS #1 END IF END SUB SUB PrintDScreen CLS CoolPrint 1, 1, "Phreak Fone - Ver 2.0 - By: Brian Mahocker - Contact me at ^Kain121182@AOL.COM^", 1, 0 CoolPrint 3, 16, "Current Prefix : ", 100, 0 CoolPrint 4, 11, "Current Fone Number : ", 100, 0 CoolPrint 5, 18, "Seconds Left : ", 100, 0 CoolPrint 7, 16, "Numbers Dialed : ", 100, 0 CoolPrint 8, 18, "Numbers Left : ", 100, 0 CoolPrint 10, 10, "Current Modem Status : ", 100, 0 CoolPrint 15, 1, "To skip the current fone number, press ^S^.", 200, 0 CoolPrint 16, 1, "To pause the count down, press ^P^, then press it again to continue.", 200, 0 CoolPrint 17, 1, "To quit the operation, press ^Q^.", 200, 0 END SUB SUB SelectInput (x, y, which) IF which = 1 THEN GOTO SI1 IF which = 2 THEN GOTO SI2 IF which = 3 THEN GOTO SI3 IF which = 4 THEN GOTO SI4 SI1: LET SI1Cur = 1 LOCATE x, y, 0 COLOR 7: PRINT "["; : COLOR 15: PRINT "1"; : COLOR 7: PRINT "/"; : COLOR 8: PRINT "2"; : COLOR 7: PRINT "/"; : COLOR 8: PRINT "3"; : COLOR 7: PRINT "/"; : COLOR 8: PRINT "4"; : COLOR 7: PRINT "]" PrintSI1: LOCATE x, y, 0 IF SI1Cur = 1 THEN COLOR 7: PRINT "["; : COLOR 15: PRINT "1"; : COLOR 7: PRINT "/"; : COLOR 8: PRINT "2"; : COLOR 7: PRINT "/"; : COLOR 8: PRINT "3"; : COLOR 7: PRINT "/"; : COLOR 8: PRINT "4"; : COLOR 7: PRINT "]" IF SI1Cur = 2 THEN COLOR 7: PRINT "["; : COLOR 8: PRINT "1"; : COLOR 7: PRINT "/"; : COLOR 15: PRINT "2"; : COLOR 7: PRINT "/"; : COLOR 8: PRINT "3"; : COLOR 7: PRINT "/"; : COLOR 8: PRINT "4"; : COLOR 7: PRINT "]" IF SI1Cur = 3 THEN COLOR 7: PRINT "["; : COLOR 8: PRINT "1"; : COLOR 7: PRINT "/"; : COLOR 8: PRINT "2"; : COLOR 7: PRINT "/"; : COLOR 15: PRINT "3"; : COLOR 7: PRINT "/"; : COLOR 8: PRINT "4"; : COLOR 7: PRINT "]" IF SI1Cur = 4 THEN COLOR 7: PRINT "["; : COLOR 8: PRINT "1"; : COLOR 7: PRINT "/"; : COLOR 8: PRINT "2"; : COLOR 7: PRINT "/"; : COLOR 8: PRINT "3"; : COLOR 7: PRINT "/"; : COLOR 15: PRINT "4"; : COLOR 7: PRINT "]" DO LET SI1$ = INKEY$ IF SI1$ = CHR$(0) + CHR$(77) AND SI1Cur = 1 THEN LET SI1Cur = 2: GOTO PrintSI1 IF SI1$ = CHR$(0) + CHR$(77) AND SI1Cur = 2 THEN LET SI1Cur = 3: GOTO PrintSI1 IF SI1$ = CHR$(0) + CHR$(77) AND SI1Cur = 3 THEN LET SI1Cur = 4: GOTO PrintSI1 IF SI1$ = CHR$(0) + CHR$(77) AND SI1Cur = 4 THEN LET SI1Cur = 1: GOTO PrintSI1 IF SI1$ = CHR$(0) + CHR$(75) AND SI1Cur = 1 THEN LET SI1Cur = 4: GOTO PrintSI1 IF SI1$ = CHR$(0) + CHR$(75) AND SI1Cur = 2 THEN LET SI1Cur = 1: GOTO PrintSI1 IF SI1$ = CHR$(0) + CHR$(75) AND SI1Cur = 3 THEN LET SI1Cur = 2: GOTO PrintSI1 IF SI1$ = CHR$(0) + CHR$(75) AND SI1Cur = 4 THEN LET SI1Cur = 3: GOTO PrintSI1 IF SI1$ = CHR$(13) THEN GOTO SI1Enter LOOP SI1Enter: IF SI1Cur = 1 THEN LET Port = 1 IF SI1Cur = 2 THEN LET Port = 2 IF SI1Cur = 3 THEN LET Port = 3 IF SI1Cur = 4 THEN LET Port = 4 GOTO AfterSI: SI2: LET SI2Cur = 1 LOCATE x, y, 0 COLOR 7: PRINT "["; : COLOR 15: PRINT "oN"; : COLOR 7: PRINT "/"; : COLOR 8: PRINT "oFF"; : COLOR 7: PRINT "]" PrintSI2: LOCATE x, y, 0 IF SI2Cur = 1 THEN COLOR 7: PRINT "["; : COLOR 15: PRINT "oN"; : COLOR 7: PRINT "/"; : COLOR 8: PRINT "oFF"; : COLOR 7: PRINT "]" IF SI2Cur = 2 THEN COLOR 7: PRINT "["; : COLOR 8: PRINT "oN"; : COLOR 7: PRINT "/"; : COLOR 15: PRINT "oFF"; : COLOR 7: PRINT "]" DO LET SI2$ = INKEY$ IF SI2$ = CHR$(0) + CHR$(77) AND SI2Cur = 1 THEN LET SI2Cur = 2: GOTO PrintSI2 IF SI2$ = CHR$(0) + CHR$(77) AND SI2Cur = 2 THEN LET SI2Cur = 1: GOTO PrintSI2 IF SI2$ = CHR$(0) + CHR$(75) AND SI2Cur = 2 THEN LET SI2Cur = 1: GOTO PrintSI2 IF SI2$ = CHR$(0) + CHR$(75) AND SI2Cur = 1 THEN LET SI2Cur = 2: GOTO PrintSI2 IF SI2$ = CHR$(13) THEN GOTO SI2Enter LOOP SI2Enter: IF SI2Cur = 1 THEN LET Sounds = 1 IF SI2Cur = 2 THEN LET Sounds = 0 GOTO AfterSI: SI3: LET SI3Cur = 1 LOCATE x, y, 0 COLOR 7: PRINT "["; : COLOR 15: PRINT "y"; : COLOR 7: PRINT "/"; : COLOR 8: PRINT "N"; : COLOR 7: PRINT "]" PrintSI3: LOCATE x, y, 0 IF SI3Cur = 1 THEN COLOR 7: PRINT "["; : COLOR 15: PRINT "y"; : COLOR 7: PRINT "/"; : COLOR 8: PRINT "N"; : COLOR 7: PRINT "]" IF SI3Cur = 2 THEN COLOR 7: PRINT "["; : COLOR 8: PRINT "y"; : COLOR 7: PRINT "/"; : COLOR 15: PRINT "N"; : COLOR 7: PRINT "]" DO LET SI3$ = INKEY$ IF SI3$ = CHR$(0) + CHR$(77) AND SI3Cur = 1 THEN LET SI3Cur = 2: GOTO PrintSI3 IF SI3$ = CHR$(0) + CHR$(77) AND SI3Cur = 2 THEN LET SI3Cur = 1: GOTO PrintSI3 IF SI3$ = CHR$(0) + CHR$(75) AND SI3Cur = 2 THEN LET SI3Cur = 1: GOTO PrintSI3 IF SI3$ = CHR$(0) + CHR$(75) AND SI3Cur = 1 THEN LET SI3Cur = 2: GOTO PrintSI3 IF SI3$ = CHR$(13) THEN GOTO SI3Enter LOOP SI3Enter: IF SI3Cur = 1 THEN LET Corr = 1 IF SI3Cur = 2 THEN LET Corr = 0 GOTO AfterSI: SI4: LET SI4Cur = 1 LOCATE x, y, 0 COLOR 7: PRINT "["; : COLOR 15: PRINT "y"; : COLOR 7: PRINT "/"; : COLOR 8: PRINT "N"; : COLOR 7: PRINT "]" PrintSI4: LOCATE x, y, 0 IF SI4Cur = 1 THEN COLOR 7: PRINT "["; : COLOR 15: PRINT "y"; : COLOR 7: PRINT "/"; : COLOR 8: PRINT "N"; : COLOR 7: PRINT "]" IF SI4Cur = 2 THEN COLOR 7: PRINT "["; : COLOR 8: PRINT "y"; : COLOR 7: PRINT "/"; : COLOR 15: PRINT "N"; : COLOR 7: PRINT "]" DO LET SI4$ = INKEY$ IF SI4$ = CHR$(0) + CHR$(77) AND SI4Cur = 1 THEN LET SI4Cur = 2: GOTO PrintSI4 IF SI4$ = CHR$(0) + CHR$(77) AND SI4Cur = 2 THEN LET SI4Cur = 1: GOTO PrintSI4 IF SI4$ = CHR$(0) + CHR$(75) AND SI4Cur = 2 THEN LET SI4Cur = 1: GOTO PrintSI4 IF SI4$ = CHR$(0) + CHR$(75) AND SI4Cur = 1 THEN LET SI4Cur = 2: GOTO PrintSI4 IF SI4$ = CHR$(13) THEN GOTO SI4Enter LOOP SI4Enter: IF SI4Cur = 1 THEN LET HangUp = 1 IF SI4Cur = 2 THEN LET HangUp = 0 GOTO AfterSI: AfterSI: LOCATE , , 1 END SUB DEFINT A-Z FUNCTION TinyInput$ (x, y, Original$, Length, AutoCap, Allowed$, highest, lowest) StartOfI: COLOR 15 LOCATE x, y, 1 PRINT Original$ + SPACE$(Length - LEN(Original$)); LOCATE x, y, 1 LET CursorPos = x + 2 DO DO Ky$ = INKEY$ LOOP UNTIL Ky$ <> "" IF AutoCap THEN Ky$ = UCASE$(Ky$) TinyInputColor: LET col = INT(RND * 3) + 1 IF lcol = col THEN GOTO TinyInputColor IF col = 1 THEN LET co = 7 IF col = 2 THEN LET co = 8 IF col = 3 THEN LET co = 15 LET lcol = col SELECT CASE ASC(Ky$) 'integer compares are faster than 'string compares CASE 13 ' time to go TinyInput$ = total$ 'Function returns our string IF total$ = "" THEN GOTO AfterBlankString LOCATE , , 0: EXIT DO'off cursor; exit loop to exit function AfterBlankString: CASE 8 'Backspace IF LEN(total$) THEN total$ = LEFT$(total$, LEN(total$) - 1) LOCATE x, y: PRINT total$ + " "; LOCATE , POS(0) - 1 CASE 27 'Escape (doesn't exit??) IF AutoCap THEN Ky$ = UCASE$(Ky$) total$ = "": LOCATE x, y PRINT SPACE$(Length); : LOCATE , y IF AutoCap THEN Ky$ = UCASE$(Ky$) CASE 1 TO 8, 11 TO 255 'all other keys (exc. tab & lf) IF LEN(Allowed$) THEN IF INSTR(Allowed$, Ky$) = 0 THEN Ky$ = "" IF LEN(Ky$) AND LEN(total$) < Length THEN total$ = total$ + Ky$ COLOR co PRINT Ky$; END IF END SELECT LOOP IF highest <> 0 THEN IF VAL(total$) > highest THEN LET total$ = "" GOTO StartOfI END IF END IF IF lowest <> 0 THEN IF VAL(total$) < lowest THEN LET total$ = "" GOTO StartOfI END IF END IF LOCATE x, y: PRINT total$ END FUNCTION DEFSNG A-Z SUB WMS (Status) IF Status = 1 THEN LOCATE 10, 33 PRINT " " CoolPrint 10, 33, "Initalizing Modem", 0, 0 END IF IF Status = 2 THEN LOCATE 10, 33 PRINT " " LET WMSFN$ = "Dialing " + FoneNumber$ CoolPrint 10, 33, WMSFN$, 0, 0 END IF IF Status = 3 THEN LOCATE 10, 33 PRINT " " CoolPrint 10, 33, "Waiting. . .", 0, 0 END IF IF Status = 4 THEN LOCATE 10, 33 PRINT " " LET WMSFN$ = "Dialing " + FoneNumber$ + " (With Sounds OFF)" CoolPrint 10, 33, WMSFN$, 0, 0 END IF IF Status = 5 THEN LOCATE 10, 33 PRINT " " CoolPrint 10, 33, "Fone number is busy, hanging up.", 0, 0 END IF END SUB