home *** CD-ROM | disk | FTP | other *** search
- ;------------------------------------------------------------------------------
- ; .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
- ;------------------------------------------------------------------------------
-
- Integer INTEGER001
- Integer INTEGER002
- Integer INTEGER003
- Integer INTEGER004
- Integer INTEGER005
- Integer INTEGER006
- Integer INTEGER007
- Integer INTEGER008
- Integer INTEGER009
- Integer INTEGER010
- Integer INTEGER011
- Integer INTEGER012
- Integer INTEGER013
- String STRING001
- String STRING002
- String STRING003
- String STRING004
- String STRING005
- String STRING006
- String STRING007
- String STRING008
- String STRING009
- String STRING010
- String STRING011
- String STRING012
- String STRING013
- String STRING014
- String STRING015
- String STRING016
-
- ;------------------------------------------------------------------------------
-
- FOpen 1, PPEPath() + "LINECHAT.CNF", 0, 0
- FGet 1, STRING001
- FGet 1, STRING002
- FGet 1, STRING003
- FGet 1, STRING004
- FGet 1, STRING005
- FGet 1, STRING006
- FGet 1, INTEGER007
- FClose 1
- SaveScrn
- If (Exist(PPEPath() + STRING004)) DispFile PPEPath() + STRING004, 1
- Delay INTEGER007
- INTEGER005 = 1
- :LABEL001
- If (Mid(STRING001, INTEGER005, 1) == ";") Goto LABEL002
- STRING010 = STRING010 + Mid(STRING001, INTEGER005, 1)
- Inc INTEGER005
- Goto LABEL001
- :LABEL002
- Inc INTEGER005
- INTEGER001 = STRING010
- STRING010 = ""
- :LABEL003
- If (Mid(STRING001, INTEGER005, 1) == ";") Goto LABEL004
- STRING010 = STRING010 + Mid(STRING001, INTEGER005, 1)
- Inc INTEGER005
- Goto LABEL003
- :LABEL004
- Inc INTEGER005
- INTEGER002 = STRING010
- STRING010 = ""
- :LABEL005
- If (Mid(STRING001, INTEGER005, 1) == ";") Goto LABEL006
- STRING010 = STRING010 + Mid(STRING001, INTEGER005, 1)
- Inc INTEGER005
- Goto LABEL005
- :LABEL006
- Inc INTEGER005
- INTEGER003 = STRING010
- STRING010 = ""
- :LABEL007
- If (INTEGER005 > Len(STRING001)) Goto LABEL008
- STRING010 = STRING010 + Mid(STRING001, INTEGER005, 1)
- Inc INTEGER005
- Goto LABEL007
- :LABEL008
- Inc INTEGER005
- INTEGER004 = STRING010
- STRING010 = ""
- STRING008 = ""
- For INTEGER006 = 0 To INTEGER003 - INTEGER001
- STRING008 = STRING008 + " "
- Next
- If (Exist(PPEPath() + STRING005)) DispFile PPEPath() + STRING005, 1
- AnsiPos INTEGER001, INTEGER002
- INTEGER008 = INTEGER001
- INTEGER009 = INTEGER002
- :LABEL009
- STRING011 = MInkey()
- STRING012 = KInkey()
- If ((STRING011 == "") && (STRING012 == "")) Goto LABEL009
- If (((Len(STRING012) == 1) || (STRING012 == Chr(27))) || (STRING012 == Chr(13))) Then
- STRING007 = STRING002
- STRING013 = "SYSOP"
- Gosub LABEL010
- Endif
- If (((Len(STRING011) == 1) || (STRING011 == Chr(27))) || (STRING011 == Chr(13))) Then
- STRING007 = STRING003
- STRING013 = "USER"
- Gosub LABEL010
- Endif
- Goto LABEL009
- :LABEL010
- If (STRING013 == "SYSOP") Then
- If (STRING012 == Chr(9)) Return
- If (STRING012 == Chr(7)) Return
- If (STRING012 == Chr(27)) Goto LABEL029
- If (STRING012 == Chr(13)) Then
- STRING009 = ScrText(INTEGER001, INTEGER009, INTEGER003 - INTEGER001 + 1, 0)
- If (Upper(Mid(STRING009, 1, 3)) == "/Q ") Goto LABEL029
- If (Upper(Mid(STRING009, 1, 6)) == "/PAGE ") Print "@BEEP@"
- If (Upper(Mid(STRING009, 1, 5)) == "/BYE ") Goto LABEL030
- INTEGER008 = INTEGER001
- Inc INTEGER009
- If (INTEGER009 > INTEGER004) Then
- STRING014 = ScrText(INTEGER001, INTEGER004, INTEGER003 - INTEGER001 + 1, 1)
- INTEGER010 = INTEGER001
- INTEGER011 = INTEGER002
- AnsiPos INTEGER010, INTEGER011
- Print STRING002
- :LABEL011
- If (INTEGER011 > INTEGER004) Goto LABEL012
- Print STRING008
- Inc INTEGER011
- AnsiPos INTEGER010, INTEGER011
- Goto LABEL011
- :LABEL012
- AnsiPos INTEGER001, INTEGER002
- Print STRING014
- INTEGER009 = INTEGER002 + 1
- Endif
- AnsiPos INTEGER008, INTEGER009
- Return
- Endif
- If (STRING012 == Chr(8)) Then
- Dec INTEGER008
- If (INTEGER008 < INTEGER001) INTEGER008 = INTEGER001
- AnsiPos INTEGER008, INTEGER009
- Print STRING002 + " " + Chr(8)
- Return
- Endif
- AnsiPos INTEGER008, INTEGER009
- Print STRING002 + STRING012
- Inc INTEGER008
- If (INTEGER008 > INTEGER003) Then
- STRING015 = ""
- STRING016 = ""
- STRING009 = ScrText(INTEGER001, INTEGER009, INTEGER003 - INTEGER001 + 1, 0)
- If (Mid(STRING009, Len(STRING009), 1) == " ") INTEGER008 = INTEGER001
- If (Mid(STRING009, Len(STRING009), 1) == " ") Goto LABEL017
- INTEGER012 = Len(STRING009)
- INTEGER013 = 1
- :LABEL013
- If (STRING015 == " ") Goto LABEL014
- STRING015 = Mid(STRING009, INTEGER012, 1)
- If (!(STRING015 == " ")) STRING016 = STRING016 + STRING015
- Dec INTEGER012
- Goto LABEL013
- :LABEL014
- INTEGER013 = Len(STRING016)
- If (INTEGER013 == INTEGER003 - INTEGER001 + 1) Then
- INTEGER008 = INTEGER001
- Goto LABEL017
- Endif
- AnsiPos INTEGER003 - INTEGER013, INTEGER009
- For INTEGER006 = INTEGER003 - INTEGER013 To INTEGER003
- Print " "
- Next
- If (INTEGER009 == INTEGER004) Then
- STRING014 = ScrText(INTEGER001, INTEGER004, INTEGER003 - INTEGER001 + 1, 1)
- INTEGER010 = INTEGER001
- INTEGER011 = INTEGER002
- AnsiPos INTEGER010, INTEGER011
- Print STRING002
- :LABEL015
- If (INTEGER011 > INTEGER004) Goto LABEL016
- Print STRING008
- Inc INTEGER011
- AnsiPos INTEGER010, INTEGER011
- Goto LABEL015
- :LABEL016
- AnsiPos INTEGER001, INTEGER002
- Print STRING014
- INTEGER009 = INTEGER002
- Endif
- AnsiPos INTEGER001, INTEGER009 + 1
- INTEGER013 = Len(STRING016)
- While (INTEGER013 > 0) Do
- Print Mid(STRING016, INTEGER013, 1)
- Dec INTEGER013
- EndWhile
- INTEGER008 = INTEGER001 + Len(STRING016)
- :LABEL017
- Inc INTEGER009
- If (INTEGER009 > INTEGER004) Then
- STRING014 = ScrText(INTEGER001, INTEGER004, INTEGER003 - INTEGER001 + 1, 1)
- INTEGER010 = INTEGER001
- INTEGER011 = INTEGER002
- AnsiPos INTEGER010, INTEGER011
- Print STRING002
- :LABEL018
- If (INTEGER011 > INTEGER004) Goto LABEL019
- Print STRING008
- Inc INTEGER011
- AnsiPos INTEGER010, INTEGER011
- Goto LABEL018
- :LABEL019
- AnsiPos INTEGER001, INTEGER002
- Print STRING014
- INTEGER009 = INTEGER002 + 1
- Endif
- AnsiPos INTEGER008, INTEGER009
- Endif
- Endif
- If (STRING013 == "USER") Then
- If (STRING011 == Chr(9)) Return
- If (STRING011 == Chr(7)) Return
- If (STRING011 == Chr(27)) Goto LABEL029
- If (STRING011 == Chr(13)) Then
- STRING009 = ScrText(INTEGER001, INTEGER009, INTEGER003 - INTEGER001 + 1, 0)
- If (Upper(Mid(STRING009, 1, 3)) == "/Q ") Goto LABEL029
- If (Upper(Mid(STRING009, 1, 6)) == "/PAGE ") Print "@BEEP@"
- If (Upper(Mid(STRING009, 1, 5)) == "/BYE ") Goto LABEL030
- INTEGER008 = INTEGER001
- Inc INTEGER009
- If (INTEGER009 > INTEGER004) Then
- STRING014 = ScrText(INTEGER001, INTEGER004, INTEGER003 - INTEGER001 + 1, 1)
- INTEGER010 = INTEGER001
- INTEGER011 = INTEGER002
- AnsiPos INTEGER010, INTEGER011
- Print STRING003
- :LABEL020
- If (INTEGER011 > INTEGER004) Goto LABEL021
- Print STRING008
- Inc INTEGER011
- AnsiPos INTEGER010, INTEGER011
- Goto LABEL020
- :LABEL021
- AnsiPos INTEGER001, INTEGER002
- Print STRING014
- INTEGER009 = INTEGER002 + 1
- Endif
- AnsiPos INTEGER008, INTEGER009
- Return
- Endif
- If (STRING011 == Chr(8)) Then
- Dec INTEGER008
- If (INTEGER008 < INTEGER001) INTEGER008 = INTEGER001
- AnsiPos INTEGER008, INTEGER009
- Print STRING003 + " " + Chr(8)
- Return
- Endif
- AnsiPos INTEGER008, INTEGER009
- Print STRING003 + STRING011
- Inc INTEGER008
- If (INTEGER008 > INTEGER003) Then
- STRING015 = ""
- STRING016 = ""
- STRING009 = ScrText(INTEGER001, INTEGER009, INTEGER003 - INTEGER001 + 1, 0)
- If (Mid(STRING009, Len(STRING009), 1) == " ") INTEGER008 = INTEGER001
- If (Mid(STRING009, Len(STRING009), 1) == " ") Goto LABEL026
- INTEGER012 = Len(STRING009)
- INTEGER013 = 1
- :LABEL022
- If (STRING015 == " ") Goto LABEL023
- STRING015 = Mid(STRING009, INTEGER012, 1)
- If (!(STRING015 == " ")) STRING016 = STRING016 + STRING015
- Dec INTEGER012
- Goto LABEL022
- :LABEL023
- INTEGER013 = Len(STRING016)
- If (INTEGER013 == INTEGER003 - INTEGER001 + 1) Then
- INTEGER008 = INTEGER001
- Goto LABEL026
- Endif
- AnsiPos INTEGER003 - INTEGER013, INTEGER009
- For INTEGER006 = INTEGER003 - INTEGER013 To INTEGER003
- Print " "
- Next
- If (INTEGER009 == INTEGER004) Then
- STRING014 = ScrText(INTEGER001, INTEGER004, INTEGER003 - INTEGER001 + 1, 1)
- INTEGER010 = INTEGER001
- INTEGER011 = INTEGER002
- AnsiPos INTEGER010, INTEGER011
- Print STRING003
- :LABEL024
- If (INTEGER011 > INTEGER004) Goto LABEL025
- Print STRING008
- Inc INTEGER011
- AnsiPos INTEGER010, INTEGER011
- Goto LABEL024
- :LABEL025
- AnsiPos INTEGER001, INTEGER002
- Print STRING014
- INTEGER009 = INTEGER002
- Endif
- AnsiPos INTEGER001, INTEGER009 + 1
- INTEGER013 = Len(STRING016)
- While (INTEGER013 > 0) Do
- Print Mid(STRING016, INTEGER013, 1)
- Dec INTEGER013
- EndWhile
- INTEGER008 = INTEGER001 + Len(STRING016)
- :LABEL026
- Inc INTEGER009
- If (INTEGER009 > INTEGER004) Then
- STRING014 = ScrText(INTEGER001, INTEGER004, INTEGER003 - INTEGER001 + 1, 1)
- INTEGER010 = INTEGER001
- INTEGER011 = INTEGER002
- AnsiPos INTEGER010, INTEGER011
- Print STRING003
- :LABEL027
- If (INTEGER011 > INTEGER004) Goto LABEL028
- Print STRING008
- Inc INTEGER011
- AnsiPos INTEGER010, INTEGER011
- Goto LABEL027
- :LABEL028
- AnsiPos INTEGER001, INTEGER002
- Print STRING014
- INTEGER009 = INTEGER002 + 1
- Endif
- AnsiPos INTEGER008, INTEGER009
- Endif
- Endif
- Return
- :LABEL029
- If (Exist(PPEPath() + STRING006)) DispFile PPEPath() + STRING006, 1
- Delay INTEGER007
- RestScrn
- End
- :LABEL030
- Cls
- Hangup
- End
-
- ;------------------------------------------------------------------------------
- ;
- ; Usage report (before postprocessing)
- ;
- ; ■ Statements used :
- ;
- ; 2 End
- ; 1 Cls
- ; 64 Goto
- ; 83 Let
- ; 28 Print
- ; 59 If
- ; 3 DispFile
- ; 1 FOpen
- ; 1 FClose
- ; 7 FGet
- ; 1 Hangup
- ; 2 Gosub
- ; 9 Return
- ; 2 Delay
- ; 20 Inc
- ; 6 Dec
- ; 31 AnsiPos
- ; 1 SaveScrn
- ; 1 RestScrn
- ;
- ;
- ; ■ Functions used :
- ;
- ; 43 +
- ; 18 -
- ; 41 ==
- ; 5 <
- ; 3 <=
- ; 15 >
- ; 6 >=
- ; 39 !
- ; 7 &&
- ; 7 ||
- ; 15 Len(
- ; 6 Upper()
- ; 21 Mid()
- ; 16 Chr()
- ; 7 PPEPath()
- ; 3 Exist()
- ; 1 KInkey()
- ; 1 MInkey()
- ; 10 ScrText()
- ;
- ;------------------------------------------------------------------------------
- ;
- ; Analysis flags : B
- ;
- ; 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
- ;
- ;------------------------------------------------------------------------------
- ;
- ; Postprocessing report
- ;
- ; 3 For/Next
- ; 2 While/EndWhile
- ; 18 If/Then or If/Then/Else
- ; 0 Select Case
- ;
- ;------------------------------------------------------------------------------
- ; AEGiS Corp - Break the routines, code against the machines!
- ;------------------------------------------------------------------------------
-