home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carsten's PPE Collection
/
Carstens_PPE_Collection_2007.zip
/
S
/
SCUMLC16.ZIP
/
LASTCALL.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-09-12
|
8KB
|
466 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 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Boolean BOOLEAN002
Boolean BOOLEAN003
Boolean BOOLEAN004
Boolean BOOLEAN005
Boolean BOOLEAN006
Boolean BOOLEAN007
Boolean BOOLEAN008
Boolean BOOLEAN009
Boolean BOOLEAN010
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String TSTRING009(25)
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 STRING025
String TSTRING026(500)
String TSTRING027(500)
String TSTRING028(500)
String TSTRING029(11)
String STRING030
String STRING031
String STRING032
String STRING033
String STRING034
String STRING035
String STRING036
String STRING037
String STRING038
String STRING039
;------------------------------------------------------------------------------
STRING023 = PPEPath() + "EVIL.LST"
STRING024 = PPEPath() + "GOOD.LST"
STRING025 = PPEPath() + "TOPS.LST"
STRING003 = PPEPath() + "LASTCALL.BLT"
STRING004 = PPEPath() + "LASTCALL.CNF"
STRING006 = PPEPath() + "LASTCALL.FTR"
INTEGER001 = ReadLine(STRING004, 1)
STRING015 = ReadLine(STRING004, 2)
INTEGER010 = ReadLine(STRING004, 3)
INTEGER004 = ReadLine(STRING004, 4)
STRING022 = ReadLine(STRING004, 5)
STRING038 = ReadLine(STRING004, 6)
INTEGER007 = ReadLine(STRING004, 7)
If (STRING022 == "YES") Then
STRING005 = PPEPath() + "HEADER.1"
Else
STRING005 = PPEPath() + "HEADER.2"
Endif
STRING001 = TokenStr()
Tokenize STRING001
GetToken STRING002
GetUser
STRING013 = U_Name()
If (Len(STRING013) > 8) Then
STRING013 = Left(STRING013, 8)
STRING013 = ReplaceStr(STRING013, ".", "")
STRING013 = ReplaceStr(STRING013, " ", "")
ElseIf (Len(STRING013) <= 8) Then
STRING013 = ReplaceStr(STRING013, ".", "")
STRING013 = ReplaceStr(STRING013, " ", "")
Endif
If (STRING002 == "/192") Then
Goto LABEL001
Endif
If (STRING038 == "1") STRING039 = PPEPath() + "LASTCALL.1"
If (STRING038 == "2") STRING039 = PPEPath() + "LASTCALL.2"
If (STRING038 == "3") STRING039 = PPEPath() + "LASTCALL.3"
If (STRING038 == "4") STRING039 = PPEPath() + "LASTCALL.4"
If (STRING038 == "5") STRING039 = PPEPath() + "LASTCALL.5"
Cls
DispFile STRING039, 2 + 1
DispFile STRING005, 2 + 1
DispFile STRING003, 2 + 1
DispFile STRING006, 2 + 1
Wait
GetUser
STRING008 = PPEPath() + STRING013 + ".DAT"
FCreate 1, STRING008, 2, 0
FPutLn 1, U_Name()
FPutLn 1, U_Ful()
FPutLn 1, U_Fdl()
FPutLn 1, U_MsgWr()
FPutLn 1, U_MsgRd()
FPutLn 1, U_Stat(2)
FPutLn 1, U_Stat(3)
FPutLn 1, Time()
FPutLn 1, U_Bul()
FPutLn 1, U_Bdl()
FPutLn 1, U_LDate()
FPutLn 1, 0
FClose 1
Goto LABEL020
:LABEL001
GetUser
STRING011 = U_Name()
STRING016 = Carrier()
STRING019 = PcbNode()
STRING017 = Left(TimeAp(Time()), 5)
INTEGER003 = CurSec()
STRING012 = U_City
STRING020 = PCBMac("@BYTERATIO@")
STRING018 = CurSec()
If (Upper(STRING011) == STRING015) Then
Goto LABEL019
Endif
If (LoggedOn()) Goto LABEL002
BOOLEAN001 = 0
BOOLEAN002 = 0
BOOLEAN003 = 0
BOOLEAN004 = 0
BOOLEAN006 = 0
BOOLEAN005 = 0
BOOLEAN007 = 0
Goto LABEL019
:LABEL002
If (Len(STRING011) > 15) Then
STRING011 = Left(STRING011, 15)
Endif
If (Len(STRING012) > 18) Then
STRING012 = Left(STRING012, 18)
Endif
STRING008 = PPEPath() + STRING013 + ".DAT"
INTEGER005 = ReadLine(STRING008, 9)
FOpen 1, STRING008, 2, 0
:LABEL003
If (BOOLEAN009) Goto LABEL004
FGet 1, TSTRING029(INTEGER008)
If (Len(TSTRING029(INTEGER008)) == 0) BOOLEAN009 = 1
Inc INTEGER008
Goto LABEL003
:LABEL004
FClose 1
If (Exist(STRING008)) Delete STRING008
BOOLEAN001 = 0
BOOLEAN002 = 0
BOOLEAN003 = 0
BOOLEAN004 = 0
BOOLEAN006 = 0
BOOLEAN005 = 0
BOOLEAN007 = 0
If (U_Ful() > TSTRING029(1)) BOOLEAN001 = 1
If (U_Fdl() > TSTRING029(2)) BOOLEAN002 = 1
If (U_MsgWr() > TSTRING029(3)) BOOLEAN003 = 1
If (U_MsgRd() > TSTRING029(4)) BOOLEAN004 = 1
If (U_Stat(2) > TSTRING029(5)) BOOLEAN006 = 1
If (U_Stat(3) > TSTRING029(6)) BOOLEAN005 = 1
If (CDOn()) Goto LABEL005
If (!OnLocal()) BOOLEAN007 = 1
:LABEL005
If (BOOLEAN001) Then
STRING031 = "@X0FU"
Else
STRING031 = "@X08-"
Endif
If (BOOLEAN002) Then
STRING032 = "@X0FD"
Else
STRING032 = "@X08-"
Endif
If (BOOLEAN003) Then
STRING033 = "@X0FW"
Else
STRING033 = "@X08-"
Endif
If (BOOLEAN004) Then
STRING034 = "@X0FR"
Else
STRING034 = "@X08-"
Endif
If (BOOLEAN005) Then
STRING035 = "@X0FC"
Else
STRING035 = "@X08-"
Endif
If (BOOLEAN006) Then
STRING036 = "@X0FP"
Else
STRING036 = "@X08-"
Endif
If (BOOLEAN007) Then
STRING037 = "@X0FL"
Else
STRING037 = "@X08-"
Endif
STRING030 = "@X08[" + STRING031 + STRING032 + STRING033 + STRING034 + STRING035 + STRING036 + STRING037 + "@X08]"
STRING016 = Left(STRING016, 3)
STRING016 = Left(STRING016, 2) + "." + Right(STRING016, 1)
STRING017 = Replace(STRING017, "0", "O")
If ((Len(STRING018) < 3) && (Len(STRING018) > 1)) Then
STRING018 = "O" + STRING018
STRING018 = Replace(STRING018, "0", "O")
Else
Select Case (Len(STRING018))
Case 3
STRING018 = Replace(STRING018, "0", "O")
Case 1
STRING018 = "OO" + STRING018
STRING018 = Replace(STRING018, "0", "O")
Endif
End Select
Select Case (STRING022)
Case "YES"
BOOLEAN010 = 1
Goto LABEL007
Case "NO"
BOOLEAN010 = 0
End Select
:LABEL006
INTEGER006 = 0
INTEGER006 = U_Bul() - INTEGER005
STRING021 = INTEGER006
STRING021 = Replace(STRING021, "0", "O")
STRING021 = "@X08[@X0F" + STRING021 + "@X08]"
Goto LABEL017
:LABEL007
If (INTEGER003 >= INTEGER004) Then
Goto LABEL014
ElseIf (INTEGER003 > INTEGER010) Then
Goto LABEL011
ElseIf (INTEGER003 <= INTEGER010) Then
Goto LABEL008
Endif
:LABEL008
FOpen 1, STRING023, 0, 0
:LABEL009
If (BOOLEAN008) Goto LABEL010
FGet 1, TSTRING026(INTEGER009)
If (Len(TSTRING026(INTEGER009)) == 0) BOOLEAN008 = 1
Inc INTEGER009
Goto LABEL009
:LABEL010
FClose 1
STRING010 = TSTRING026(Random(INTEGER009) + 1)
If (Len(STRING010) > 14) Then
STRING010 = Left(STRING010, 14)
Endif
Goto LABEL017
:LABEL011
FOpen 1, STRING024, 0, 0
:LABEL012
If (BOOLEAN008) Goto LABEL013
FGet 1, TSTRING027(INTEGER009)
If (Len(TSTRING027(INTEGER009)) == 0) BOOLEAN008 = 1
Inc INTEGER009
Goto LABEL012
:LABEL013
FClose 1
STRING010 = TSTRING027(Random(INTEGER009) + 1)
If (Len(STRING010) > 14) Then
STRING010 = Left(STRING010, 14)
Endif
Goto LABEL017
:LABEL014
FOpen 1, STRING025, 0, 0
:LABEL015
If (BOOLEAN008) Goto LABEL016
FGet 1, TSTRING028(INTEGER009)
If (Len(TSTRING028(INTEGER009)) == 0) BOOLEAN008 = 1
Inc INTEGER009
Goto LABEL015
:LABEL016
FClose 1
STRING010 = TSTRING028(Random(INTEGER009) + 1)
If (Len(STRING010) > 14) Then
STRING010 = Left(STRING010, 14)
Endif
:LABEL017
Select Case (STRING038)
Case "1"
If (BOOLEAN010) Then
STRING014 = "@POS:1@@X07" + STRING018 + "@POS:5@@X0F" + STRING011 + "@POS:21@@X01" + STRING012 + "@POS:40@@X09" + STRING017 + "@POS:46@@X07" + STRING019 + "@POS:48@@X01" + STRING016 + "@POS:53@" + STRING030 + "@POS:63@@X0F" + STRING010
Else
STRING014 = "@POS:1@@X07" + STRING018 + "@POS:5@@X0F" + STRING011 + "@POS:21@@X01" + STRING012 + "@POS:40@@X09" + STRING017 + "@POS:46@@X07" + STRING019 + "@POS:48@@X01" + STRING016 + "@POS:53@" + STRING030 + "@POS:63@@X07" + STRING020 + "@POS:69@" + STRING021
Endif
Case "2"
If (BOOLEAN010) Then
STRING014 = "@POS:1@@X07" + STRING018 + "@POS:5@@X0F" + STRING011 + "@POS:21@@X04" + STRING012 + "@POS:40@@X0C" + STRING017 + "@POS:46@@X07" + STRING019 + "@POS:48@@X04" + STRING016 + "@POS:53@" + STRING030 + "@POS:63@@X0F" + STRING010
Else
STRING014 = "@POS:1@@X07" + STRING018 + "@POS:5@@X0F" + STRING011 + "@POS:21@@X04" + STRING012 + "@POS:40@@X0C" + STRING017 + "@POS:46@@X07" + STRING019 + "@POS:48@@X04" + STRING016 + "@POS:53@" + STRING030 + "@POS:63@@X07" + STRING020 + "@POS:69@" + STRING021
Endif
Case "3"
If (BOOLEAN010) Then
STRING014 = "@POS:1@@X07" + STRING018 + "@POS:5@@X0F" + STRING011 + "@POS:21@@X05" + STRING012 + "@POS:40@@X0D" + STRING017 + "@POS:46@@X07" + STRING019 + "@POS:48@@X05" + STRING016 + "@POS:53@" + STRING030 + "@POS:63@@X0F" + STRING010
Else
STRING014 = "@POS:1@@X07" + STRING018 + "@POS:5@@X0F" + STRING011 + "@POS:21@@X05" + STRING012 + "@POS:40@@X0D" + STRING017 + "@POS:46@@X07" + STRING019 + "@POS:48@@X05" + STRING016 + "@POS:53@" + STRING030 + "@POS:63@@X07" + STRING020 + "@POS:69@" + STRING021
Endif
Case "4"
If (BOOLEAN010) Then
STRING014 = "@POS:1@@X0F" + STRING018 + "@POS:5@@X07" + STRING011 + "@POS:21@@X08" + STRING012 + "@POS:40@@X07" + STRING017 + "@POS:46@@X0F" + STRING019 + "@POS:48@@X07" + STRING016 + "@POS:53@" + STRING030 + "@POS:63@@X0F" + STRING010
Else
STRING014 = "@POS:1@@X0F" + STRING018 + "@POS:5@@X07" + STRING011 + "@POS:21@@X08" + STRING012 + "@POS:40@@X07" + STRING017 + "@POS:46@@X0F" + STRING019 + "@POS:48@@X07" + STRING016 + "@POS:53@" + STRING030 + "@POS:63@@X07" + STRING020 + "@POS:69@" + STRING021
Endif
Case "5"
If (BOOLEAN010) Then
STRING014 = "@POS:1@@X07" + STRING018 + "@POS:5@@X0F" + STRING011 + "@POS:21@@X02" + STRING012 + "@POS:40@@X0A" + STRING017 + "@POS:46@@X07" + STRING019 + "@POS:48@@X02" + STRING016 + "@POS:53@" + STRING030 + "@POS:63@@X0F" + STRING010
Goto LABEL018
Endif
STRING014 = "@POS:1@@X07" + STRING018 + "@POS:5@@X0F" + STRING011 + "@POS:21@@X02" + STRING012 + "@POS:40@@X0A" + STRING017 + "@POS:46@@X07" + STRING019 + "@POS:48@@X02" + STRING016 + "@POS:53@" + STRING030 + "@POS:63@@X07" + STRING020 + "@POS:69@" + STRING021
End Select
:LABEL018
FOpen 1, STRING003, 2, 0
INTEGER002 = 1
While (!Ferr(1) && (INTEGER002 <= INTEGER001)) Do
FGet 1, STRING007
TSTRING009(INTEGER002) = STRING007
Inc INTEGER002
EndWhile
FClose 1
FCreate 1, STRING003, 2, 0
If (INTEGER002 >= INTEGER001) Then
INTEGER002 = 1
While ((Len(TSTRING009(INTEGER002 + 1)) > 0) && (INTEGER002 <= INTEGER001)) Do
FPutLn 1, TSTRING009(INTEGER002 + 1)
INTEGER002 = INTEGER002 + 1
EndWhile
Else
INTEGER002 = 1
While (Len(TSTRING009(INTEGER002)) > 0) Do
FPutLn 1, TSTRING009(INTEGER002)
Inc INTEGER002
EndWhile
Endif
FPutLn 1, STRING014
FClose 1
Return
:LABEL019
STRING008 = PPEPath() + STRING013 + ".DAT"
If (Exist(STRING008)) Delete STRING008
:LABEL020
End
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 End
; 1 Cls
; 1 Wait
; 90 Goto
; 117 Let
; 63 If
; 4 DispFile
; 2 FCreate
; 5 FOpen
; 7 FClose
; 5 FGet
; 15 FPutLn
; 3 GetUser
; 2 Delete
; 1 Return
; 6 Inc
; 1 Tokenize
; 1 GetToken
;
;
; ■ Functions used :
;
; 203 +
; 1 -
; 21 ==
; 1 <
; 4 <=
; 16 >
; 2 >=
; 47 !
; 3 &&
; 17 Len(
; 1 Upper()
; 9 Left()
; 1 Right()
; 1 Ferr()
; 3 Random()
; 2 Time()
; 3 U_Name()
; 1 U_LDate()
; 2 U_Ful()
; 2 U_Fdl()
; 1 U_Bdl()
; 2 U_Bul()
; 1 TimeAp()
; 5 Replace()
; 16 PPEPath()
; 2 U_MsgRd()
; 2 U_MsgWr()
; 1 PcbNode()
; 8 ReadLine()
; 1 OnLocal()
; 2 CurSec()
; 2 Exist()
; 1 Carrier()
; 1 TokenStr()
; 1 CDOn()
; 4 U_Stat()
; 1 LoggedOn()
; 4 ReplaceStr()
; 1 PCBMac()
;
;------------------------------------------------------------------------------
;
; Analysis flags : No flag
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 0 For/Next
; 3 While/EndWhile
; 27 If/Then or If/Then/Else
; 3 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------