home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
PCBOARD
/
LOPBCK40.ZIP
/
CALLBACK.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-01-16
|
23KB
|
901 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Date DATE002
Date DATE003
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer TINTEGER006(99)
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
Integer INTEGER011
Integer INTEGER012
Integer INTEGER013
Integer INTEGER014
Integer INTEGER015
Integer INTEGER016
Integer INTEGER017
Integer INTEGER018
Integer INTEGER019
Integer INTEGER020
Integer INTEGER021
Integer INTEGER022
Integer INTEGER023
Integer INTEGER024
Integer INTEGER025
String STRING003
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String TSTRING009(4)
String STRING010
String STRING011
String STRING012
String STRING013
String STRING014
String STRING015
String STRING016
String STRING017
String STRING018
String STRING019
String STRING020
String STRING021
String STRING022
String STRING023
String STRING024
String TSTRING025(33)
String TSTRING026(11)
String TSTRING027(11)
String STRING028
String STRING029
String TSTRING030(5)
String TSTRING031(5)
String STRING032
String STRING033
String STRING034
String STRING035
String STRING036
String STRING037
String TSTRING038(99)
String STRING039
String STRING040
String STRING041
String STRING042
String STRING043
;------------------------------------------------------------------------------
GetUser
STRING039 = Time()
Log "Entered LoopBack at -> " + STRING039, 0
RdUNet PcbNode()
WrUNet PcbNode(), UN_Stat(), UN_Name(), UN_City(), "RUNNING " + PPEName(), ""
FOpen 1, PPEPath() + PPEName() + ".CFG", 0, 0
For INTEGER004 = 1 To 33
FGet 1, TSTRING025(INTEGER004)
TSTRING025(INTEGER004) = RTrim(Left(TSTRING025(INTEGER004), 16), " ")
Next
FClose 1
If (U_Sec == SysopSec()) Then
If (TSTRING025(25) == "Y") Goto LABEL001
Endif
If (U_Sec >= TSTRING025(3)) Goto LABEL033
:LABEL001
BOOLEAN001 = 0
STRING005 = TSTRING025(1)
STRING006 = Chr(13)
STRING011 = TSTRING025(27)
If (TSTRING025(27) == "0") Then
STRING011 = ""
ElseIf (TSTRING025(27) <> "0") Then
STRING011 = TSTRING025(27)
Endif
STRING033 = TSTRING025(28)
STRING036 = TSTRING025(29)
INTEGER020 = Len(TSTRING025(31))
STRING041 = Len(TSTRING025(4))
INTEGER024 = INTEGER020 - STRING041 - 2
FOpen 1, PPEPath() + PPEName() + ".KEY", 0, 0
For INTEGER004 = 1 To 4
FGet 1, TSTRING009(INTEGER004)
Next
FClose 1
STRING010 = TSTRING009(1) + TSTRING009(2) + TSTRING009(3)
STRING010 = Strip(STRING010, " ")
For INTEGER005 = 1 To Len(STRING010)
TINTEGER006(INTEGER005) = Asc(Mid(STRING010, INTEGER005, 1))
Next
INTEGER007 = 0
For INTEGER005 = 1 To 80
INTEGER007 = INTEGER007 + TINTEGER006(INTEGER005)
Next
INTEGER008 = INTEGER007 * 709
If (INTEGER008 == TSTRING009(4)) Goto LABEL004
INTEGER019 = 0
FOpen 5, PPEPath() + PPEName() + ".FON", 0, 0
:LABEL002
If (Ferr(5)) Goto LABEL003
Inc INTEGER019
FGet 5, STRING019
Goto LABEL002
:LABEL003
FClose 5
INTEGER019 = INTEGER019 - 1
StartDisp 1
Cls
PrintLn "@X0A┌─────────────────────────────────────────────────────────────────────────────┐"
PrintLn "│ @X8CUNREGISTERED EVALUATION SOFTWARE @X0A│"
PrintLn "│ @X0CPLEASE HAVE YOUR SYSOP REGISTER THIS PROGRAM (OR EVEN HELP HIM REGISTER IT) @X0A│"
PrintLn "└─────────────────────────────────────────────────────────────────────────────┘"
PrintLn " "
PrintLn " ╓─┐ ╥ ┬ ╥──┐ ╥ ┬ ─╥─ ╥ ┬ ╓──┐ ╥ ╓─╥─┐ ╥──┐ ╓──┐ ╥ ┬"
PrintLn " @X04╙─┐ ║ │ ╟─┬┘ ╙╖┌┘ ║ ╙╖┌┘ ╟──┤ ║ ─── ║ ╟─ ║ ╟──┤"
PrintLn " @X02╙──┘ ╙──┘ ╨ ┴ ╙┘ ─╨─ ╙┘ ╨ ┴ ╨──┘ ╨ ╨──┘ ╙──┘ ╨ ┴ o"
PrintLn " "
PrintLn " @X0D ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
PrintLn " @X0BPRESENTS "
PrintLn " "
PrintLn "@X0C┌─┐ ┌──────┐ ┌──────┐ ┌─────┐ ┌──────┐ ┌──────┐ ┌─────┐ ┌─┐ ┌──┐"
PrintLn "@X0C│ │ │ ┌──┐ │ │ ┌──┐ │ │ ┌─┐ │ └┐ ┌─┐ │ │ ┌──┐ │ │ ┌─┐ │ │ │┌┘ ┌┘"
PrintLn "@X0C│ │ │ │ │ │ │ │ │ │ │ └─┘ │ ┌────┐ │ └─┘ │ │ └──┘ │ │ │ └─┘ │ └┘ └─┐"
PrintLn "@X0C│ │ │ │ │ │ │ │ │ │ │ ┌───┘ └────┘ │ ┌─┐ │ │ ┌──┐ │ │ │ ┌─┐ │ ┌──┐ │"
PrintLn "@X0C│ └──┐ │ └──┘ │ │ └──┘ │ │ │ ┌┘ └─┘ │ │ │ │ │ │ └─┘ │ │ │ │ │"
PrintLn "@X0C└────┘ └──────┘ └──────┘ └─┘ └──────┘ └─┘ └─┘ └─────┘ └─┘ └─┘"
PrintLn " @X0EProgrammed by "
PrintLn " ", Chr(66), Chr(105), Chr(108), Chr(108), Chr(32), Chr(77), Chr(97), Chr(114), Chr(99), Chr(121)
PrintLn " @X091994 "
PrintLn " @X0CRegistered to: ", Chr(85), Chr(110), Chr(114), Chr(101), Chr(103), Chr(105), Chr(115), Chr(116), Chr(101), Chr(114), Chr(101), Chr(100), Chr(32), Chr(69), Chr(118), Chr(97), Chr(108), Chr(117), Chr(97), Chr(116), Chr(105), Chr(111), Chr(110), Chr(32), Chr(67), Chr(111), Chr(112), Chr(121)
For INTEGER019 = INTEGER019 To 0 Step -1
AnsiPos 7, 22
PrintLn "@X0EThis @X0B", INTEGER019, "@X0E second delay is removed once this program is registered.@X0F "
Delay (1.5 * 182) / 18
Next
Goto LABEL005
:LABEL004
If (TSTRING025(9) == "Y") Goto LABEL005
StartDisp 1
Cls
PrintLn " "
PrintLn " "
PrintLn " @X0A ╓─┐ ╥ ┬ ╥──┐ ╥ ┬ ─╥─ ╥ ┬ ╓──┐ ╥ ╓─╥─┐ ╥──┐ ╓──┐ ╥ ┬"
PrintLn "@X04 ╙─┐ ║ │ ╟─┬┘ ╙╖┌┘ ║ ╙╖┌┘ ╟──┤ ║ ─── ║ ╟─ ║ ╟──┤"
PrintLn "@X02 ╙──┘ ╙──┘ ╨ ┴ ╙┘ ─╨─ ╙┘ ╨ ┴ ╨──┘ ╨ ╨──┘ ╙──┘ ╨ ┴ o"
PrintLn " "
PrintLn " @X0D▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
PrintLn " @X0BPRESENTS "
PrintLn "@X0C┌─┐ ┌──────┐ ┌──────┐ ┌─────┐ ┌──────┐ ┌──────┐ ┌─────┐ ┌─┐ ┌──┐"
PrintLn "@X0C│ │ │ ┌──┐ │ │ ┌──┐ │ │ ┌─┐ │ └┐ ┌─┐ │ │ ┌──┐ │ │ ┌─┐ │ │ │┌┘ ┌┘"
PrintLn "@X0C│ │ │ │ │ │ │ │ │ │ │ └─┘ │ ┌────┐ │ └─┘ │ │ └──┘ │ │ │ └─┘ │ └┘ └─┐"
PrintLn "@X0C│ │ │ │ │ │ │ │ │ │ │ ┌───┘ └────┘ │ ┌─┐ │ │ ┌──┐ │ │ │ ┌─┐ │ ┌──┐ │"
PrintLn "@X0C│ └──┐ │ └──┘ │ │ └──┘ │ │ │ ┌┘ └─┘ │ │ │ │ │ │ └─┘ │ │ │ │ │"
PrintLn "@X0C└────┘ └──────┘ └──────┘ └─┘ └──────┘ └─┘ └─┘ └─────┘ └─┘ └─┘"
PrintLn "@X0A Programmed by "
PrintLn " ", Chr(66), Chr(105), Chr(108), Chr(108), Chr(32), Chr(77), Chr(97), Chr(114), Chr(99), Chr(121)
PrintLn " @X021994 "
PrintLn " "
PrintLn " REGISTERED TO: ", TSTRING009(3)
PrintLn " "
PrintLn " @X0BVer.4.0"
Delay (1 * 182) / 10
:LABEL005
Cls
DispFile PPEPath() + "ONE.DSP", 2 + 1 + 4
STRING017 = "Y"
If (TSTRING025(10) == "Y") InputYN "Do you wish to continue with Call Back Verification (Y/n)@X0A ", STRING017, 10
If (Upper(STRING017) == "N") Then
STRING039 = Time()
Log "Voluntary LoopBack exit at -> " + STRING039, 0
End
Endif
Newline
Select Case (TSTRING025(7))
Case "1"
STRING043 = U_HVPhone
Case "2"
STRING043 = U_BDPhone
Case "3"
Goto LABEL006
End Select
If (STRING043 == " ") Goto LABEL006
Print "@X0C", STRING043
InputYN " @X0A <- Would you like to use this number (Y/n) ", STRING017, 10
If (Upper(STRING017) == "Y") Then
STRING003 = STRING043
Endif
If (Upper(STRING017) == "Y") Goto LABEL007
:LABEL006
Newline
InputStr "@X0AEnter the number you can be verified at (ex " + TSTRING025(8) + ") ", STRING003, 10, INTEGER020, "0123456789-", 0
If (STRING003 == 0) Goto LABEL005
If (Len(STRING003) < Len(TSTRING025(31))) Goto LABEL005
:LABEL007
STRING003 = Strip(STRING003, "-")
STRING003 = Strip(STRING003, " ")
STRING003 = Strip(STRING003, "(")
STRING003 = Strip(STRING003, ")")
If (TSTRING025(5) == "LC") Then
If (TSTRING025(5) == "LD") Goto LABEL008
If (Left(STRING003, 3) <> TSTRING025(4)) Goto LABEL034
Endif
:LABEL008
If (TSTRING025(13) == "N") Goto LABEL011
FOpen 5, PPEPath() + "CALLBACK.BAD", 2, 0
If (Ferr(5)) Then
Goto LABEL011
Endif
INTEGER021 = 1
:LABEL009
If (Ferr(5)) Goto LABEL010
STRING042 = ReadLine(PPEPath() + "CallBack.Bad", INTEGER021)
If (Mid(Strip(STRING042, "-"), 2, 10) == STRING003) Inc INTEGER025
Inc INTEGER021
If (INTEGER025 == TSTRING025(30)) Goto LABEL030
If (STRING042 == "") Goto LABEL010
Goto LABEL009
:LABEL010
FClose 5
:LABEL011
If (Left(STRING003, STRING041) == TSTRING025(4)) Goto LABEL014
STRING040 = "LNG"
If (TSTRING025(32) == "N") Goto LABEL014
FOpen 1, PPEPath() + "AREAEXCH.CAL", 0, 0
If (Ferr(1)) Then
PrintLn "ERROR NO AREAEXCH.CAL FILE...EXITING"
End
Endif
INTEGER021 = 1
:LABEL012
If (Ferr(1)) Goto LABEL013
FGet 1, TSTRING038(INTEGER021)
INTEGER023 = Strip(TSTRING038(INTEGER021), ",")
INTEGER022 = Len(INTEGER023)
If (INTEGER023 == Left(STRING003, INTEGER022)) STRING040 = "LCL"
If (INTEGER023 == "0") Goto LABEL013
Inc INTEGER021
Goto LABEL012
:LABEL013
FClose 1
:LABEL014
FClose 1
If (STRING040 == "LNG") Then
STRING003 = "1" + STRING003
Endif
If (Left(STRING003, STRING041) == TSTRING025(4)) Then
STRING003 = Right(STRING003, INTEGER024)
Endif
FClose 1
FOpen 1, PPEPath() + "BADNUMS.CAL", 0, 0
If (Ferr(1)) Then
PrintLn "ERROR NO BADNUMS.CAL FILE...EXITING"
End
Endif
:LABEL015
If (Ferr(1)) Goto LABEL016
FGet 1, STRING012
If (Mid(STRING003, 2, 3) == Strip(STRING012, "-")) Goto LABEL031
If (Strip(STRING003, "-") == Strip(STRING012, "-")) Goto LABEL031
If (STRING003 == Strip(STRING012, "-")) Goto LABEL031
Goto LABEL015
:LABEL016
FClose 1
If (TSTRING025(17) == "N") Goto LABEL019
FOpen 2, PPEPath() + "AREACODE.CAL", 0, 0
If (Ferr(2)) Then
PrintLn "ERROR NO AREACODE.CAL FILE...EXITING"
End
Endif
:LABEL017
If (Ferr(2)) Goto LABEL018
FGet 2, STRING022
If (Mid(STRING003, 2, 3) == STRING022) Goto LABEL039
Goto LABEL017
:LABEL018
FClose 2
:LABEL019
If (TSTRING025(23) == "N") Goto LABEL022
FOpen 5, PPEPath() + "EXCHANGE.CAL", 0, 0
If (Ferr(5)) Then
PrintLn "ERROR NO EXCHANGE.CAL FILE...EXITING"
End
Endif
:LABEL020
If (Ferr(5)) Goto LABEL021
FGet 5, STRING024
If (Mid(STRING003, 2, 3) == Strip(STRING024, "-")) Goto LABEL040
Goto LABEL020
:LABEL021
FClose 5
:LABEL022
FOpen 3, PPEPath() + PPEName() + ".FON", 0, 0
Cls
Newline
DispFile PPEPath() + "TWO.DSP", 2 + 1 + 4
STRING018 = STRING003
:LABEL023
If (Ferr(3)) Goto LABEL024
Gosub LABEL035
FGet 3, STRING013
If (STRING003 == Mid(STRING013, 2, 12)) Goto LABEL032
Goto LABEL023
:LABEL024
FClose 3
If (TSTRING025(24) == "N") Goto LABEL025
DispFile PPEPath() + "THREE.DSP", 2 + 1 + 4
FOpen 6, PPEPath() + "TIMEREST.CAL", 0, 0
If (Ferr(6)) Then
PrintLn "ERROR NO TIMEREST.CAL FILE...EXITING"
End
Endif
For INTEGER011 = 1 To 11
FGet 6, TSTRING026(INTEGER011)
Next
FClose 6
Select Case (Dow(Date()))
Case "0"
INTEGER012 = 5
Case "1"
INTEGER012 = 6
Case "2"
INTEGER012 = 7
Case "3"
INTEGER012 = 8
Case "4"
INTEGER012 = 9
Case "5"
INTEGER012 = 10
Case "6"
INTEGER012 = 11
End Select
Select Case (Hour(Time()))
Case "00"
INTEGER013 = 6
Case "01"
INTEGER013 = 7
Case "02"
INTEGER013 = 8
Case "03"
INTEGER013 = 9
Case "04"
INTEGER013 = 10
Case "05"
INTEGER013 = 11
Case "06"
INTEGER013 = 12
Case "07"
INTEGER013 = 13
Case "08"
INTEGER013 = 14
Case "09"
INTEGER013 = 15
Case "10"
INTEGER013 = 16
Case "11"
INTEGER013 = 17
Case "12"
INTEGER013 = 18
Case "13"
INTEGER013 = 19
Case "14"
INTEGER013 = 20
Case "15"
INTEGER013 = 21
Case "16"
INTEGER013 = 22
Case "17"
INTEGER013 = 23
Case "18"
INTEGER013 = 24
Case "19"
INTEGER013 = 25
Case "20"
INTEGER013 = 26
Case "21"
INTEGER013 = 27
Case "22"
INTEGER013 = 28
Case "23"
INTEGER013 = 29
End Select
If (Mid(TSTRING026(INTEGER012), INTEGER013, 1) == " ") Goto LABEL041
:LABEL025
STRING003 = STRING018
DispFile PPEPath() + "FOUR.DSP", 2 + 1 + 4
StartDisp 1
DispFile PPEPath() + "FIVE.DSP", 2 + 1 + 4
Delay (10 * 182) / 10
If (U_Sec == SysopSec()) Then
If (TSTRING025(25) == "Y") Goto LABEL026
Endif
CdChkOff
DtrOff
Gosub LABEL036
KbdChkOff
STRING034 = STRING033 + STRING006
SendModem STRING034
STRING037 = TSTRING025(11)
For INTEGER019 = STRING037 To 0 Step -1
AnsiPos 55, 15
PrintLn "@X7ECountdown Delay = @X74", INTEGER019, "@X78 @X0F"
Delay (1 * 182) / 10
Next
Log "Attempting to call -> " + STRING003, 0
DtrOn
STRING035 = STRING036 + STRING006
SendModem STRING035
Delay (2 * 182) / 10
STRING004 = STRING005 + STRING011 + STRING003 + STRING006
INTEGER009 = TSTRING025(14)
WaitFor "CONNECT", BOOLEAN001, 1
For INTEGER003 = 1 To TSTRING025(12)
AnsiPos 55, 16
PrintLn "@X7EDial Attempt =@X79 ", INTEGER003, "@X0E"
SendModem STRING004
AnsiPos 55, 17
PrintLn "@X7ERinging Status = @X74Ring @X08"
WaitFor "CONNECT", BOOLEAN001, INTEGER009
If (BOOLEAN001) Goto LABEL026
Next
STRING008 = "Unsuccessful (No answer/connect)"
Goto LABEL029
:LABEL026
KbdChkOn
CdChkOn
INTEGER018 = 0
OpText "Calling back for verification"
:LABEL027
Inc INTEGER018
Cls
PrintLn "@X70┌─────────────────────────────────────────────────────────────────────────────@X7F┐@X0F"
PrintLn "@X70│@X71@BOARDNAME:76C@ @X7F│@X0F"
PrintLn "@X70│@X71@OPTEXT:76C@ @X7F│@X0F"
PrintLn "@X70└@X7F─────────────────────────────────────────────────────────────────────────────┘@X0F"
For INTEGER019 = 4 To 0 Step -1
AnsiPos 0, 5
PrintLn "@X70┌─────────────────────────────────────────────────────────────────────────────@X7F┐@X0F"
PrintLn "@X70│ @X71Attempt @X74", INTEGER018, " @X71of @X743", " @X71Please wait for @X74", INTEGER019, "@X71 seconds @X7F│@X0F"
PrintLn "@X70└@X7F─────────────────────────────────────────────────────────────────────────────┘@X0F"
Delay (1 * 182) / 10
Next
KeyFlush
StartDisp 1
DispFile PPEPath() + "seventee.dsp", 2 + 1 + 4
Newline
STRING032 = ""
InputStr " @X0BFull Name:@X0E ", STRING032, 10, 35, Mask_Ascii(), 8
Newline
STRING007 = ""
InputStr " @X0BPassword:@X0E ", STRING007, 10, 12, Mask_Ascii(), 8 + 1
If (INTEGER018 == 3) Goto LABEL028
If (STRING032 <> U_Name()) Goto LABEL027
If (STRING007 <> U_Pwd) Goto LABEL027
:LABEL028
If (Len(STRING003) == 7) Then
STRING003 = TSTRING025(4) + STRING003
STRING014 = Left(STRING003, 3)
STRING015 = Mid(STRING003, 4, 3)
STRING016 = Mid(STRING003, 7, 4)
STRING003 = STRING014 + "-" + STRING015 + "-" + STRING016
Endif
If (Len(STRING003) == 11) Then
STRING003 = Right(STRING003, 10)
STRING014 = Left(STRING003, 3)
STRING015 = Mid(STRING003, 4, 3)
STRING016 = Mid(STRING003, 7, 4)
STRING003 = STRING014 + "-" + STRING015 + "-" + STRING016
Endif
If ((U_Name() == STRING032) && (U_Pwd == STRING007)) Then
STRING008 = "Successful"
If (TSTRING025(15) == "0") Then
DATE003 = "00-00-00"
ElseIf (TSTRING025(15) > "0") Then
DATE003 = Date() + TSTRING025(15)
Endif
U_ExpDate = DATE003
U_Sec = TSTRING025(2)
STRING023 = TSTRING025(18)
U_ExpSec = STRING023
DATE002 = Date()
STRING020 = DATE002
STRING021 = "LoopBack·" + STRING020 + "·" + STRING003
Select Case (TSTRING025(16))
Case "1"
U_Cmnt1 = STRING021
Case "2"
U_Cmnt2 = STRING021
End Select
Newline
Log "------- CALLBACK SUCCESSFUL -------", 1
DispFile PPEPath() + "SIX.DSP", 2 + 1 + 4
FAppend 1, PPEPath() + PPEName() + ".FON", 2, 0
FPutLn 1, Chr(34), STRING003, Chr(34), ",", Chr(34), U_Name(), Chr(34), ",", Chr(34), Date(), Chr(34)
FClose 1
If (TSTRING025(19) == "Y") Then
Message TSTRING025(20), "SYSOP", U_Name(), "LoopBack Successful", "R", Date(), 0, 0, PPEPath() + "SYSOP.MSG"
Endif
If (TSTRING025(21) == "Y") Then
Message TSTRING025(22), U_Name(), "SYSOP", "Welcome....", "R", Date(), 0, 0, PPEPath() + "NEWUSER.MSG"
Endif
If (TSTRING025(26) > "0") Then
AdjBytes TSTRING025(26)
Endif
PutUser
Else
STRING008 = "Unsuccessful (Incorrect Login)"
Newlines 2
Log "------- CALLBACK UNSUCCESSFUL -------", 1
DispFile PPEPath() + "SEVEN.DSP", 2 + 1 + 4
FAppend 1, PPEPath() + PPEName() + ".BAD", 2, 0
FPutLn 1, Chr(34), STRING003, Chr(34), ",", Chr(34), U_Name(), Chr(34), ",", Chr(34), Date(), Chr(34)
FClose 1
FAppend 1, PPEPath() + "CallBack.bad", 2, 0
FPutLn 1, Chr(34), STRING003, Chr(34), ",", Chr(34), U_Name(), Chr(34), ",", Chr(34), Date(), Chr(34)
FClose 1
Endif
:LABEL029
KbdChkOn
CdChkOn
Hangup
STRING039 = Time()
Log "Exited LoopBack normally at -> " + STRING039, 0
End
:LABEL030
Newline
DispFile PPEPath() + "NINETEEN.DSP", 2 + 1 + 4
STRING039 = Time()
Log "Exited LoopBack with too many # attempts at-> " + STRING039, 0
Delay (2 * 182) / 10
Hangup
:LABEL031
STRING003 = Strip(STRING003, "-")
STRING003 = Strip(STRING003, "(")
STRING003 = Strip(STRING003, ")")
FAppend 2, PPEPath() + PPEName() + ".!!!", 2, 0
FPutLn 2, Chr(34), STRING003, Chr(34), ",", Chr(34), U_Name(), Chr(34), ",", Chr(34), Date(), Chr(34)
FClose 2
Newline
DispFile PPEPath() + "NINE.DSP", 2 + 1 + 4
STRING039 = Time()
Log "Exited LoopBack with a BAD Number! at -> " + STRING039, 0
Wait
Hangup
End
:LABEL032
PrintLn " "
DispFile PPEPath() + "TEN.DSP", 2 + 1 + 4
STRING039 = Time()
Log "Exited LoopBack with a duplicate number at -> " + STRING039, 0
End
:LABEL033
If (TSTRING025(33) == "Y") Then
DispFile PPEPath() + "eight.dsp", 2 + 1 + 4
Endif
STRING039 = Time()
Log "Exited LoopBack as security was too high at-> " + STRING039, 0
Delay (2 * 182) / 10
End
If (Len(STRING003) == 7) Then
Return
Endif
If (Upper(TSTRING025(6)) == "Y") Goto LABEL034
Newline
DispFile PPEPath() + "ELEVEN.DSP", 2 + 1 + 4
STRING039 = Time()
Log "Exited LoopBack because # was long dist at -> " + STRING039, 0
End
DispFile PPEPath() + "TWELVE.DSP", 2 + 1 + 4
STRING039 = Time()
Log "Exited LoopBack Sysop Callback at -> " + STRING039, 0
End
:LABEL034
Call PPEPath() + "postcard.ppe"
End
:LABEL035
If (Len(STRING003) == 7) Then
STRING003 = TSTRING025(4) + STRING003
STRING014 = Left(STRING003, 3)
STRING015 = Mid(STRING003, 4, 3)
STRING016 = Mid(STRING003, 7, 4)
STRING003 = STRING014 + "-" + STRING015 + "-" + STRING016
Endif
If (Len(STRING003) == 11) Then
STRING003 = Right(STRING003, 10)
STRING014 = Left(STRING003, 3)
STRING015 = Mid(STRING003, 4, 3)
STRING016 = Mid(STRING003, 7, 4)
STRING003 = STRING014 + "-" + STRING015 + "-" + STRING016
Endif
Return
:LABEL036
INTEGER010 = 0
FOpen 5, PPEPath() + PPEName() + ".FON", 0, 0
:LABEL037
If (Ferr(5)) Goto LABEL038
Inc INTEGER010
FGet 5, STRING019
Goto LABEL037
:LABEL038
FClose 5
INTEGER010 = INTEGER010 - 1
StartDisp 1
AnsiPos 0, 11
Print "@X0F"
Cls
Newlines 11
PrintLn "@X70┌─────────────────────────────────────────────────────────────────────────────@X7F┐@X08"
PrintLn "@X70│ @X7ETotal users verified: Verification number: @X7F│@X08"
PrintLn "@X70└@X7F─────────────────────────────────────────────────────────────────────────────┘@X08"
PrintLn "@X70┌───────────────────────────────────────────────────@X7F┐@X70┌────────────────────────@X7F┐@X08"
PrintLn "@X70│ @X75Data Number @X76Date @X71User Name @X7F│@X70│ @X7F│@X08"
PrintLn "@X70│ @X75──────────── @X76──────── @X71───────────────────────── @X7F│@X70│ @X7F│@X08"
PrintLn "@X70│ @X7F│@X70│@X7EDelay Status = @XF4ACTIVE@X7F│@X08"
PrintLn "@X70│ @X7F│@X70└@X7F────────────────────────┘@X08"
PrintLn "@X70│ @X7F│@X70┌────────────────────────@X7F┐@X08"
PrintLn "@X70│ @X7F│@X70│ @X7ALoopBack@X7E(tm) @X7F│@X08"
PrintLn "@X70│ @X7F│@X70│ @X71 Bill Marcy (@X74c@X71)93 @X7F│@X08"
PrintLn "@X70└@X7F───────────────────────────────────────────────────┘@X70└@X7F────────────────────────┘@X01"
AnsiPos 25, 12
Print "@X74", INTEGER010
AnsiPos 63, 12
Print "", STRING003
AnsiPos 1, 17
INTEGER016 = 1
INTEGER014 = INTEGER010 - 4
For INTEGER015 = INTEGER014 To INTEGER010
TSTRING030(INTEGER016) = ReadLine(PPEPath() + PPEName() + ".FON", INTEGER015)
Inc INTEGER016
Next
TSTRING031(1) = Len(TSTRING030(1))
INTEGER017 = TSTRING031(1) - 28
TSTRING031(2) = Mid(TSTRING030(1), 17, INTEGER017)
PrintLn "@X70│@X75 ", Strip(Left(TSTRING030(1), 14), Chr(34)), " @X76 ", Strip(Right(TSTRING030(1), 10), Chr(34)), " @X71 ", TSTRING031(2)
TSTRING031(1) = Len(TSTRING030(2))
INTEGER017 = TSTRING031(1) - 28
TSTRING031(2) = Mid(TSTRING030(2), 17, INTEGER017)
PrintLn "@X70│@X75 ", Strip(Left(TSTRING030(2), 14), Chr(34)), " @X76 ", Strip(Right(TSTRING030(2), 10), Chr(34)), " @X71 ", TSTRING031(2)
TSTRING031(1) = Len(TSTRING030(3))
INTEGER017 = TSTRING031(1) - 28
TSTRING031(2) = Mid(TSTRING030(3), 17, INTEGER017)
PrintLn "@X70│@X75 ", Strip(Left(TSTRING030(3), 14), Chr(34)), " @X76 ", Strip(Right(TSTRING030(3), 10), Chr(34)), " @X71 ", TSTRING031(2)
TSTRING031(1) = Len(TSTRING030(4))
INTEGER017 = TSTRING031(1) - 28
TSTRING031(2) = Mid(TSTRING030(4), 17, INTEGER017)
PrintLn "@X70│@X75 ", Strip(Left(TSTRING030(4), 14), Chr(34)), " @X76 ", Strip(Right(TSTRING030(4), 10), Chr(34)), " @X71 ", TSTRING031(2)
TSTRING031(1) = Len(TSTRING030(5))
INTEGER017 = TSTRING031(1) - 28
TSTRING031(2) = Mid(TSTRING030(5), 17, INTEGER017)
PrintLn "@X70│@X75 ", Strip(Left(TSTRING030(5), 14), Chr(34)), " @X76 ", Strip(Right(TSTRING030(5), 10), Chr(34)), " @X71 ", TSTRING031(2)
Return
:LABEL039
Newline
Newline
DispFile PPEPath() + "FOURTEEN.DSP", 2 + 1 + 4
STRING039 = Time()
Log "Exited LoopBack with an excluded area code at-> " + STRING039, 0
Delay (2 * 182) / 10
End
:LABEL040
Newline
Newline
DispFile PPEPath() + "FIFTEEN.DSP", 2 + 1 + 4
STRING039 = Time()
Log "Exited LoopBack with an excluded exchange at-> " + STRING039, 0
Delay (2 * 182) / 10
End
:LABEL041
DispFile PPEPath() + "SIXTEEN.DSP", 2 + 1 + 4
STRING017 = "Y"
Newline
InputYN "@X0EWould you like to view the Call-Back schedule (Y/n) ", STRING017, 10
STRING039 = Time()
Log "Exited LoopBack due to a time restrict -> " + STRING039, 0
If (Upper(STRING017) == "N") Then
End
Endif
Select Case (Dow(Date()))
Case "0"
STRING028 = "SUN"
Case "1"
STRING028 = "MON"
Case "2"
STRING028 = "TUE"
Case "3"
STRING028 = "WED"
Case "4"
STRING028 = "THU"
Case "5"
STRING028 = "FRI"
Case "6"
STRING028 = "SAT"
End Select
STRING029 = Hour(Time())
Cls
StartDisp 1
FOpen 6, PPEPath() + "TIMEREST.CAL", 0, 0
If (Ferr(6)) Then
PrintLn "ERROR NO TIMEREST.CAL FILE...EXITING"
End
Endif
PrintLn " @X0ALoopBack(tm) Callback Schedule"
Newline
For INTEGER011 = 1 To 11
FGet 6, TSTRING027(INTEGER011)
PrintLn " @X0E " + TSTRING027(INTEGER011)
Next
FClose 6
PrintLn
PrintLn "@X0BThe current DOW is@X0C " + STRING028 + "@X0B and the current hour is@X0C " + STRING029
PrintLn
PrintLn "@X0BTimes start with Midnight or 00 hours military time, and go through to 23:00."
PrintLn "If there is an " + Chr(34) + "@X0Ex@X0B" + Chr(34) + " in the time slot for the day, the system can call you back."
PrintLn
PrintLn "If there is no " + Chr(34) + "@X0Ex@X0B" + Chr(34) + " in this time slot, please try calling back at a time"
PrintLn "designated above."
Delay (10 * 182) / 10
End
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 18 End
; 7 Cls
; 1 Wait
; 187 Goto
; 178 Let
; 4 Print
; 88 PrintLn
; 126 If
; 17 DispFile
; 12 FOpen
; 4 FAppend
; 18 FClose
; 11 FGet
; 4 FPutLn
; 6 StartDisp
; 3 Hangup
; 1 GetUser
; 1 PutUser
; 15 Log
; 3 InputStr
; 3 InputYN
; 2 Gosub
; 3 Return
; 1 DtrOn
; 1 DtrOff
; 2 CdChkOn
; 1 CdChkOff
; 11 Delay
; 3 SendModem
; 7 Inc
; 15 Newline
; 2 Newlines
; 1 Call
; 2 WaitFor
; 2 KbdChkOn
; 1 KbdChkOff
; 1 OpText
; 1 RdUNet
; 1 WrUNet
; 9 AnsiPos
; 2 Message
; 1 AdjBytes
; 1 KeyFlush
;
;
; ■ Functions used :
;
; 9 -
; 12 *
; 11 /
; 152 +
; 10 -
; 92 ==
; 4 <>
; 12 <
; 11 <=
; 2 >
; 23 >=
; 91 !
; 23 &&
; 11 ||
; 17 Len(
; 5 Upper()
; 20 Mid()
; 14 Left()
; 8 Right()
; 15 Ferr()
; 87 Chr()
; 1 Asc()
; 1 RTrim()
; 22 Date()
; 37 Time()
; 8 U_Name()
; 14 Dow()
; 25 Hour()
; 25 Strip()
; 2 Mask_Ascii()
; 38 PPEPath()
; 2 PcbNode()
; 2 ReadLine()
; 2 SysopSec()
; 1 UN_Stat()
; 1 UN_Name()
; 1 UN_City()
; 10 PPEName()
;
;------------------------------------------------------------------------------
;
; Analysis flags : WBMCaHs
;
; W - Write user ■ 5
; Program writes a user record. Although this may be normal for a
; User Editor, it may also be a way to modify an account level.
; ■ Search for : PUTUSER
;
; B - Brute hangup ■ 1
; Program hangup without notification. This may be a good way to
; disconnect a user, but if used randomly, may be very nasty
; ■ Search for : HANGUP, DTROFF
;
; M - Send text to modem only ■ 4
; Some informations are sent only to the modem, not to the local
; screen, this is a well known way to make stealth backdoors, Check!
; ■ Search for : SENDMODEM, MPRINT, MPRINTLN
;
; C - Call child PPE ■ 3
; This is usually normal, but may be a tricky way to launch some
; sysop-only commands.
; ■ Search for : CALL
;
; a - Adjust ratio ■ 4
; User's ratio is adjusted by changing the amount of files/bytes
; uploaded. This may be normal for a user editor.
; ■ Search for : ADJBYTES, ADJDBYTES, ADJTBYTES, ADJTFILES
;
; H - Read Password or Password History ■ 5
; Program is reading the user's password or last password history
; This may be ok for a password manager, but it is very suspect. Check!
; ■ Search for : U_PWDHIST, U_PWD
;
; s - Sysop level access ■ 5
; Program is reading the sysop access level, this may be normal
; but still it is very suspect. It is the best way to give a user
; all priviledges. Check!
; ■ Search for : SYSOPSEC()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 11 For/Next
; 0 While/EndWhile
; 29 If/Then or If/Then/Else
; 5 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------