home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carsten's PPE Collection
/
Carstens_PPE_Collection_2007.zip
/
T
/
THTUE100.ZIP
/
THTUEDIT.PPE
(
.txt
)
< prev
Wrap
PCBoard Programming Language Executable
|
1994-10-31
|
19KB
|
1,086 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 BOOLEAN004
Boolean BOOLEAN005
Boolean BOOLEAN006
Boolean BOOLEAN007
Boolean BOOLEAN008
Date DATE002
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
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
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(1)
String TSTRING027(1)
String TSTRING028(1)
String STRING029
String STRING030
String STRING031
String TSTRING032(1)
String STRING033
String STRING034
String STRING035
String STRING036
String STRING037
String STRING038
String STRING039
String STRING040
String STRING041
String STRING042
String STRING043
String STRING044
String STRING045
String STRING046
String STRING047
String STRING048
String TSTRING049(1)
String TSTRING050(1)
String TSTRING051(1)
String TSTRING052(1)
String TSTRING053(1)
String TSTRING054(1)
String STRING055
String STRING056
String STRING057
String STRING058
String TSTRING059(1)
String STRING060
;------------------------------------------------------------------------------
STRING031 = TokenStr()
RdUNet PcbNode()
WrUNet PcbNode(), UN_Stat(), UN_Name(), UN_City(), "Running " + PPEName(), ""
If (!(STRING060 == "0")) Print "" ; PPLC BUG!
STRING060 = ((((((((((((((((1.12222e+49 + (99 * 10000) * 99) * 1e+64) * 4.54545e+27) * 34343434) * 56) * 6545645) * 4545) * 4343443) * 1e+43) * 6) * 6) * 8) * 5.65657e+20) * 78) * 78) * (6 ^ 565656)) * 1e+10
STRING021 = ReadLine(PCBDat(), 31)
INTEGER010 = ReadLine(PCBDat(), 108)
STRING056 = ReadLine(PCBDat(), 265)
TSTRING059(0) = Upper(ReadLine(PCBDat(), 2))
TSTRING059(1) = Upper(ReadLine(PCBDat(), 94))
FClose -1
StartDisp 1
TSTRING026(1) = "R"
TSTRING026(0) = " "
TSTRING027(1) = "S"
TSTRING027(0) = " "
TSTRING028(1) = "E"
TSTRING028(0) = " "
TSTRING032(1) = "S"
TSTRING032(0) = " "
TSTRING049(0) = "@X0CNo "
TSTRING049(1) = "@X0FYes"
TSTRING050(0) = "@X0CNo "
TSTRING050(1) = "@X0FYes"
TSTRING051(0) = "@X0CNo "
TSTRING051(1) = "@X0FYes"
TSTRING052(0) = "@X0CNo "
TSTRING052(1) = "@X0FYes"
TSTRING053(0) = "@X0CNo "
TSTRING053(1) = "@X0FYes"
TSTRING054(0) = "@X0CNo "
TSTRING054(1) = "@X0FYes"
STRING055 = Chr(64) + Chr(88) + Chr(48) + Chr(53) + Chr(94 - 10) + Chr(83 - 11) + Chr(95 - 11) + Chr(45) + Chr(95 - 10) + Chr(80 - 11) + Chr(69 - 1) + Chr(75 - 2) + Chr(96 - 12) + Chr(32) + Chr(64) + Chr(88) + Chr(48) + Chr(68) + Chr(118) + Chr(32) + Chr(64) + Chr(88) + Chr(48) + Chr(52) + Chr(49) + Chr(46) + Chr(48) + Chr(48)
FDefIn 1
BOOLEAN005 = 1
BOOLEAN004 = 0
FOpen 1, PPEPath() + PPEName() + ".CNF", 0, 0
FDGet STRING011
FDGet STRING015
FDGet STRING017
FDGet STRING016
FDGet STRING019
FDGet STRING029
FDGet STRING040
FDGet STRING041
FDGet STRING042
FDGet STRING043
FDGet STRING044
FDGet STRING045
FDGet STRING035
FDGet STRING046
FDGet STRING047
FDGet STRING048
FDGet STRING034
FDGet STRING036
FDGet STRING037
FDGet STRING038
FDGet STRING039
FDGet STRING057
FDGet STRING058
FClose 1
GetUser
STRING012 = U_Name()
INTEGER014 = U_RecNum(STRING012)
INTEGER004 = U_Bdl()
INTEGER005 = U_Fdl()
DATE002 = U_LDate()
STRING033 = U_Alias
STRING029 = STRING029 + "." + String(PcbNode())
If (CurSec() >= STRING011) Goto LABEL001
Goto LABEL019
:LABEL001
If (STRING031 <> Upper("MSG")) Goto LABEL002
If (Exist(STRING029)) Then
If (Exist(STRING029)) FOpen 1, STRING029, 0, 0
FDGet STRING030
FDGet STRING030
FDGet STRING030
FClose 1
STRING030 = RTrim(Mid(STRING030, 7, 25), " ")
INTEGER006 = U_RecNum(STRING030)
Gosub LABEL028
Endif
:LABEL002
Cls
PrintLn "@X0FPSA'S Present @X0C-> @X05Alias , Verify , Address , Password , Stats , Notes @X07"
PrintLn STRING055 + Space(2) + TSTRING049(Psa(1)) + " " + TSTRING054(Psa(2)) + " " + TSTRING050(Psa(3)) + " " + TSTRING051(Psa(4)) + " " + TSTRING052(Psa(5)) + " " + TSTRING053(Psa(6))
PrintLn "@X05┌─────────────────────────── @X07User Number @X08[ @X08] @X05──────────────────────────────┐"
PrintLn "│ @X07[@X0FA@X07] R Name@X08[ ]@X05│@X07[@X0FL@X07] Security @X08[ ] @X05│"
If (Psa(3)) Then
PrintLn "│ @X07[@X0FB@X07] Address@X08[ ]@X05│@X07[@X0FM@X07] Expired Sec. @X08[ ] @X05│"
PrintLn "│ @X07[@X0FC@X07] City@X08 [ ]@X05│@X07[@X0FN@X07] Reg. Ex. Date@X08[ ] @X05│"
PrintLn "│ @X07[@X0FD@X07] State@X08[ ]@X05│@X07[ @X07] # of U/Ls @X08[ ] @X05│"
PrintLn "│ @X07[@X0FE@X07] Note@X08 [ @X08 ]@X05│@X07[@X0FP@X07] # of D/Ls @X08[ ] @X05│"
Else
PrintLn "│ │@X07[@X0FM@X07] Expired Sec. @X08[ ] @X05│"
PrintLn "│ │@X07[@X0FN@X07] Reg. Ex. Date@X08[ ] @X05│"
PrintLn "│ │@X07[ @X07] # of U/Ls @X08[ ] @X05│"
PrintLn "│ @X05│@X07[@X0FP@X07] # of D/Ls @X08[ ] @X05│"
Endif
PrintLn "│ @X07[@X0FF@X07] Voice Phone@X08[ ]@X05│@X07[ @X07] Bytes U/L @X08[ ] @X05│"
PrintLn "│ @X07[@X0FG@X07] Data Phone @X08[ ]@X05│@X07[@X0FS@X07] Bytes D/L @X08[ ] @X05│"
PrintLn "│ @X07[@X0FH@X07] Expert Mode@X08[ ]@X05│@X07[ @X07] File Ratio @X08[ ] @X05│"
PrintLn "│ @X07[@X0FI@X07] Protocol @X08[ ]@X05│@X07[ @X07] Byte Ratio @X08[ ] @X05│"
PrintLn "│ @X07[@X0FJ@X07] Page Length@X08[ ]@X05│@X07[@X0FV@X07] Full Screen @X08[ ] @X05│"
If (Psa(1)) Then
PrintLn "│ @X07[@X0FK@X07] Alias @X08[ ]@X05│@X07[@X0FW@X07] Password @X08[ ] @X05│"
Else
PrintLn "│ @X05│@X07[@X0FW@X07] Password @X08[ ] @X05│"
Endif
If (Psa(2)) Then
PrintLn "│ @X07[@X0FO@X07] Verify Info@X08[ @X08]@X05│ @X05│"
Else
PrintLn "│ @X05│ @X05│"
Endif
PrintLn "├──────────────────────────────────────┴──────────────────────────────────────┤"
PrintLn "│ @X07[@X0FX@X07] Comment 1 @X08[ ] @X05│"
PrintLn "│ @X07[@X0FY@X07] Comment 2 @X08[ ] @X05│"
PrintLn "└─────────────────────────────────────────────────────────────────────────────┘"
Print STRING036
INTEGER015 = GetX()
Newline
Print STRING037
INTEGER018 = GetX()
INTEGER019 = GetY() - 1
Newline
:LABEL003
Print STRING035
AnsiPos 43, 3
Print U_RecNum(U_Name())
AnsiPos 14, 4
Print U_Name()
AnsiPos 15, 5
If (Psa(3)) Print Left(U_Addr(0), 24)
AnsiPos 13, 6
If (Psa(3)) Print Left(U_Addr(2), 26)
AnsiPos 13, 7
If (Psa(3)) Print Left(U_Addr(3), 26)
AnsiPos 13, 8
Print Left(U_City, 26)
AnsiPos 19, 9
Print U_HVPhone
AnsiPos 19, 10
Print U_BDPhone
AnsiPos 19, 11
Print " "
AnsiPos 19, 11
If (U_Expert == 1) Print "On"
If (U_Expert == 0) Print "Off"
AnsiPos 19, 12
Print U_Trans
AnsiPos 19, 13
Print U_PageLen
AnsiPos 19, 14
If (Psa(1)) Print U_Alias
AnsiPos 19, 15
If (Psa(2)) Print U_Ver
AnsiPos 19, 17
Print U_Cmnt1
AnsiPos 19, 18
Print U_Cmnt2
AnsiPos 59, 4
Print Space(18)
AnsiPos 59, 4
Print U_Sec
AnsiPos 59, 5
Print U_ExpSec
AnsiPos 59, 6
Print U_ExpDate
AnsiPos 59, 7
Print U_Ful()
AnsiPos 59, 8
Print U_Fdl()
AnsiPos 59, 9
Print U_Bul()
AnsiPos 59, 10
Print U_Bdl()
AnsiPos 59, 11
Print "@FILERATIO@"
AnsiPos 59, 12
Print "@BYTERATIO@"
AnsiPos 59, 13
Print " "
AnsiPos 59, 13
If (U_FSEP == 0) Then
If (U_FSE == 0) Print "No"
If (U_FSE == 1) Print "Yes"
Else
If (U_FSEP == 1) Print "Ask"
Endif
AnsiPos 59, 14
Print U_Pwd
AnsiPos INTEGER018, INTEGER019 + 1
If (BOOLEAN004 == 1) Return
:LABEL004
STRING014 = ""
:LABEL005
STRING013 = Upper(Inkey())
If (STRING013 == "") Goto LABEL005
If (STRING013 == "A") Then
AnsiPos 14, 4
Print Space(25)
AnsiPos 14, 4
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
STRING012 = STRING014
Gosub LABEL030
Goto LABEL006
Endif
Endif
:LABEL006
If (STRING013 == "B") Then
AnsiPos 15, 5
Print Space(24)
AnsiPos 15, 5
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
U_Addr(0) = STRING014
Gosub LABEL030
Goto LABEL007
Endif
Endif
:LABEL007
If (STRING013 == "C") Then
AnsiPos 13, 6
Print Space(26)
AnsiPos 13, 6
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
U_Addr(2) = STRING014
Gosub LABEL030
Goto LABEL008
Endif
Endif
:LABEL008
If (STRING013 == "D") Then
AnsiPos 13, 7
Print Space(26)
AnsiPos 13, 7
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
U_Addr(3) = STRING014
Gosub LABEL030
Goto LABEL009
Endif
Endif
:LABEL009
If (STRING013 == "E") Then
AnsiPos 13, 8
Print Space(26)
AnsiPos 13, 8
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
U_City = STRING014
Gosub LABEL030
Goto LABEL010
Endif
Endif
:LABEL010
If (STRING013 == "F") Then
AnsiPos 19, 9
Print Space(18)
AnsiPos 19, 9
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
U_HVPhone = STRING014
Gosub LABEL030
Goto LABEL011
Endif
Endif
:LABEL011
If (STRING013 == "G") Then
AnsiPos 19, 10
Print Space(18)
AnsiPos 19, 10
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
U_BDPhone = STRING014
Gosub LABEL030
Goto LABEL012
Endif
Endif
:LABEL012
If (STRING013 == "H") Then
AnsiPos 19, 11
Print Space(18)
AnsiPos 19, 11
STRING014 = ""
InputStr "_", STRING014, 14, 20, "YyNn", 2 + 4 + 4096 + 8
If (STRING014 == "Y") U_Expert = 1
If (STRING014 == "N") U_Expert = 0
Gosub LABEL030
Endif
If (STRING013 == "I") Then
AnsiPos 19, 12
Print Space(18)
AnsiPos 19, 12
STRING014 = U_Trans
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096 + 8
U_Trans = STRING014
Gosub LABEL030
Endif
If (STRING013 == "J") Then
AnsiPos 19, 13
Print Space(18)
AnsiPos 19, 13
INTEGER017 = U_PageLen
InputStr "_", INTEGER017, 14, 20, Mask_Ascii(), 2 + 4 + 4096
U_PageLen = INTEGER017
Gosub LABEL030
Endif
If (STRING013 == "K") Then
AnsiPos 19, 14
Print Space(18)
If (Psa(1)) Then
AnsiPos 19, 14
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
U_Alias = STRING014
Gosub LABEL030
Goto LABEL013
Endif
Endif
Endif
:LABEL013
If (STRING013 == "L") Then
AnsiPos 59, 4
Print Space(18)
AnsiPos 59, 4
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
U_Sec = STRING014
Gosub LABEL030
Goto LABEL014
Endif
Endif
:LABEL014
If (STRING013 == "M") Then
AnsiPos 59, 5
Print Space(18)
AnsiPos 59, 5
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
U_ExpSec = STRING014
Gosub LABEL030
Endif
Endif
If (STRING013 == "N") Then
AnsiPos 59, 6
Print Space(18)
AnsiPos 59, 6
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
U_ExpDate = STRING014
Gosub LABEL030
Endif
If (STRING013 == "O") Then
AnsiPos 19, 15
Print Space(18)
If (Psa(2)) Then
AnsiPos 19, 15
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
U_Ver = STRING014
Gosub LABEL030
Endif
Endif
Endif
If (STRING013 == "P") Then
AnsiPos 59, 8
Print Space(18)
AnsiPos 59, 8
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
INTEGER005 = STRING014 - INTEGER005
AdjTFiles INTEGER005
Gosub LABEL030
Endif
Endif
If (STRING013 == "R") Then
Endif
If (STRING013 == "S") Then
AnsiPos 59, 10
Print Space(18)
AnsiPos 59, 10
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
INTEGER004 = STRING014 - INTEGER004
AdjTBytes INTEGER004
Gosub LABEL030
Endif
Endif
If (STRING013 == "T") Then
Endif
If (STRING013 == "U") Then
Endif
If (STRING013 == "V") Then
AnsiPos 59, 13
Print Space(18)
AnsiPos 59, 13
STRING014 = ""
InputStr "_", STRING014, 14, 20, "YyNnAa", 2 + 4 + 4096 + 8
If (STRING014 == "Y") Then
U_FSEP = 0
U_FSE = 1
Endif
If (STRING014 == "N") Then
U_FSEP = 0
U_FSE = 0
Endif
If (STRING014 == "A") U_FSEP = 1
Gosub LABEL030
Endif
If (STRING013 == "W") Then
If (Psa(4)) Then
AnsiPos 1, 22
Print STRING057 + STRING056 + STRING058
Endif
AnsiPos 59, 14
Print Space(18)
AnsiPos 59, 14
STRING014 = ""
InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Goto LABEL015
AnsiPos 1, 22
Print Space(78)
Goto LABEL016
:LABEL015
U_Pwd = STRING014
Gosub LABEL030
AnsiPos 1, 22
Print Space(78)
Goto LABEL016
Endif
:LABEL016
If (STRING013 == "1") Then
AnsiPos INTEGER015, INTEGER019 + 1
SaveScrn
Gosub LABEL022
RestScrn
AnsiPos INTEGER015, INTEGER019 + 1
STRING013 = ""
STRING014 = ""
BOOLEAN004 = 0
Gosub LABEL027
Goto LABEL017
Endif
:LABEL017
If (STRING013 == "X") Then
AnsiPos 19, 17
Print Space(36)
AnsiPos 19, 17
STRING014 = ""
InputStr "_", STRING014, 14, 40, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
U_Cmnt1 = STRING014
Gosub LABEL030
Endif
Endif
If (STRING013 == "Y") Then
AnsiPos 19, 18
Print Space(36)
AnsiPos 19, 18
STRING014 = ""
InputStr "_", STRING014, 14, 40, Mask_Ascii(), 2 + 4 + 4096
If (STRING014 <> "") Then
U_Cmnt2 = STRING014
Gosub LABEL030
Endif
Endif
If (STRING013 == "+") Then
INTEGER006 = U_RecNum(U_Name())
INTEGER006 = INTEGER006 + 1
Gosub LABEL028
BOOLEAN004 = 1
Gosub LABEL027
Gosub LABEL003
Endif
If (STRING013 == "-") Then
INTEGER006 = U_RecNum(U_Name())
INTEGER006 = INTEGER006 - 1
Gosub LABEL028
BOOLEAN004 = 1
Gosub LABEL027
Gosub LABEL003
Endif
If (STRING013 == "=") Then
AnsiPos 24, 22
InputStr STRING034, STRING014, 14, 3, "1234567890", 2 + 4 + 4096 + 32
If ((STRING014 == 1) && (INTEGER014 <> 1)) STRING014 = 2
INTEGER006 = STRING014
Gosub LABEL028
BOOLEAN004 = 1
Gosub LABEL027
Gosub LABEL003
Endif
If (STRING013 == "!") Then
U_Sec = STRING016
Gosub LABEL030
Endif
If (STRING013 == "*") Then
U_Sec = STRING017
Gosub LABEL030
Endif
If (STRING013 == "%") Then
U_Sec = STRING015
Gosub LABEL030
Endif
If (STRING013 == "?") Then
AnsiPos 78, 22
SaveScrn
AnsiPos 24, 22
Print Space(66)
AnsiPos 24, 22
Print "@X07List all users on system?"
AnsiPos 50, 22
Print "@X1FYES"
AnsiPos 55, 22
Print "@X08NO"
BOOLEAN006 = 1
BOOLEAN007 = 1
STRING018 = ""
While (BOOLEAN007) Do
While (STRING018 == "") Do
STRING018 = Inkey()
EndWhile
If (((STRING018 == "LEFT") || (STRING018 == "RIGHT")) || (STRING018 == Chr(13))) Then
If (STRING018 == Chr(13)) Break
If ((STRING018 == "RIGHT") && (BOOLEAN006 == 1)) Then
AnsiPos 50, 22
Print "@X08YES"
AnsiPos 55, 22
Print "@X1FNO"
BOOLEAN006 = 0
STRING018 = ""
Endif
If ((STRING018 == "LEFT") && (BOOLEAN006 == 1)) Then
AnsiPos 50, 22
Print "@X08YES"
AnsiPos 55, 22
Print "@X1FNO"
BOOLEAN006 = 0
STRING018 = ""
Endif
If ((STRING018 == "LEFT") && (BOOLEAN006 == 0)) Then
AnsiPos 50, 22
Print "@X1FYES"
AnsiPos 55, 22
Print "@X08NO"
BOOLEAN006 = 1
STRING018 = ""
Endif
If ((STRING018 == "RIGHT") && (BOOLEAN006 == 0)) Then
AnsiPos 50, 22
Print "@X1FYES"
AnsiPos 55, 22
Print "@X08NO"
BOOLEAN006 = 1
STRING018 = ""
Endif
Endif
STRING018 = ""
EndWhile
If (BOOLEAN006 == 1) Then
PrintLn "@CLS@"
STRING014 = ""
InputStr STRING038, STRING014, 14, 20, "aASsLlNn", 2 + 4 + 4096 + 8
Newlines 1
If (STRING014 == "") Then
BOOLEAN004 = 1
Gosub LABEL001
Endif
If (STRING014 == "A") Then
BOOLEAN007 = 1
INTEGER006 = 1
While (BOOLEAN007) Do
Gosub LABEL029
If (CurUser() == -1) Break
PrintLn U_Name()
INTEGER006 = INTEGER006 + 1
EndWhile
Newlines 1
BOOLEAN008 = 1
Gosub LABEL021
Endif
If (STRING014 == "N") Then
BOOLEAN007 = 1
INTEGER006 = 2
While (BOOLEAN007) Do
Gosub LABEL029
If (CurUser() == -1) Break
If (STRING019 == U_Sec) PrintLn U_Name()
INTEGER006 = INTEGER006 + 1
EndWhile
Newlines 1
BOOLEAN008 = 1
Gosub LABEL021
Endif
If (STRING014 == "S") Then
BOOLEAN007 = 1
INTEGER006 = 1
While (BOOLEAN007) Do
Gosub LABEL029
If (CurUser() == -1) Break
If (STRING015 == U_Sec) PrintLn U_Name()
INTEGER006 = INTEGER006 + 1
EndWhile
BOOLEAN008 = 1
Newlines 1
Gosub LABEL021
Endif
If (STRING014 == "L") Then
BOOLEAN007 = 1
INTEGER006 = 1
While (BOOLEAN007) Do
Gosub LABEL029
If (CurUser() == -1) Break
If (STRING016 == U_Sec) PrintLn U_Name()
INTEGER006 = INTEGER006 + 1
EndWhile
BOOLEAN008 = 1
Newlines 1
Gosub LABEL021
Endif
Goto LABEL018
Endif
Gosub LABEL020
Endif
:LABEL018
If (STRING013 == "Q") Then
Goto LABEL019
Endif
BOOLEAN004 = 1
Gosub LABEL003
Goto LABEL004
:LABEL019
AnsiPos 0, 23
FReAltUser
KeyFlush
End
:LABEL020
AnsiPos 6, 22
Print "@X0F" + Space(74)
AnsiPos 14, 22
:LABEL021
STRING014 = ""
InputStr STRING039, STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096 + 8 + 32
If (Len(STRING014) > 1) Then
If ((STRING014 == 1) && (INTEGER014 <> 1)) STRING014 = 2
INTEGER006 = U_RecNum(STRING014)
If (INTEGER006 == -1) Then
AnsiPos 26, 22
Print "Invalid User"
Delay 15
AnsiPos 26, 22
Print Space(18)
If (BOOLEAN008 == 0) Then
Goto LABEL021
Endif
Goto LABEL020
Endif
Gosub LABEL028
BOOLEAN004 = 1
RestScrn
Gosub LABEL027
Gosub LABEL003
Else
AnsiPos 12, 22
Gosub LABEL027
RestScrn
Goto LABEL003
Goto LABEL001
Endif
Return
:LABEL022
Cls
DispFile PPEPath() + PPEName() + ".dsp", 0
INTEGER016 = GetY()
AnsiPos 15, 1
Print "@X09 User is @X0F-> @X0D" + U_Name()
:LABEL023
INTEGER015 = 4
INTEGER007 = 5
INTEGER008 = 2
If (INTEGER006 == 0) INTEGER006 = 1
FOpen 1, STRING021 + ".@@@", 0, 0
For INTEGER009 = 0 To INTEGER010
FSeek 1, INTEGER008, 0
FDRead STRING020, 25
AnsiPos INTEGER015, INTEGER007
Print STRING040 + String(INTEGER009)
AnsiPos INTEGER015 + 11, INTEGER007
Print STRING041 + STRING020
AnsiPos INTEGER015 + 26, INTEGER007
Print STRING042 + TSTRING026(ConfReg(INTEGER009))
Print STRING043 + TSTRING027(ConfSel(INTEGER009))
Print STRING044 + TSTRING028(ConfExp(INTEGER009))
Print STRING045 + TSTRING032(ConfSys(INTEGER009))
INTEGER008 = INTEGER008 + 548
Inc INTEGER007
If (INTEGER007 == INTEGER016 - 1) Then
INTEGER015 = 42
INTEGER007 = 5
Endif
Next
FClose 1
Newline
:LABEL024
AnsiPos 4, INTEGER016
InputStr STRING046, STRING025, "", 1, "SsUuQq", 0 + 32 + 8
If (STRING025 == "") Goto LABEL024
If (STRING025 == "Q") Return
:LABEL025
AnsiPos 4, INTEGER016
InputStr STRING047, STRING022, "", 3, "Qq0123456789", 0 + 8 + 32
If (STRING022 == "Q") Return
If (STRING022 > INTEGER010) Goto LABEL025
If (STRING022 == "") Goto LABEL025
If (STRING022 <> "") Then
INTEGER012 = STRING022
AnsiPos 4, INTEGER016
InputStr STRING048, STRING023, "", 3, "EeSsRr", 0 + 8
INTEGER011 = Len(STRING023)
If (INTEGER011 > 1) Then
STRING023 = Mid(STRING023, 1, 1) + " " + Mid(STRING023, 2, 1) + " " + Mid(STRING023, 3, 1)
Endif
Tokenize STRING023
For INTEGER009 = 1 To 3
GetToken STRING024
If (STRING024 == "R") INTEGER013 = 1
If (STRING024 == "S") INTEGER013 = INTEGER013 + 4
If (STRING024 == "E") INTEGER013 = INTEGER013 + 2
Next
Gosub LABEL028
If (STRING025 == "S") Then
ConfFlag INTEGER012, INTEGER013
PutUser
Goto LABEL026
Endif
ConfUnflag INTEGER012, INTEGER013
PutUser
:LABEL026
Gosub LABEL028
Goto LABEL023
Endif
:LABEL027
AnsiPos 43, 3
Print Space(3)
AnsiPos 14, 4
Print Space(25)
AnsiPos 15, 5
Print Space(24)
AnsiPos 13, 6
Print Space(26)
AnsiPos 13, 7
Print Space(26)
AnsiPos 13, 8
Print Space(26)
AnsiPos 19, 9
Print Space(20)
AnsiPos 19, 10
Print Space(20)
AnsiPos 19, 11
Print Space(20)
AnsiPos 19, 11
Print Space(20)
AnsiPos 19, 12
Print Space(20)
AnsiPos 19, 13
Print Space(20)
AnsiPos 19, 14
Print Space(20)
AnsiPos 19, 15
Print Space(20)
AnsiPos 19, 17
Print Space(58)
AnsiPos 19, 18
Print Space(58)
AnsiPos 59, 4
Print Space(18)
AnsiPos 59, 4
Print Space(18)
AnsiPos 59, 5
Print Space(18)
AnsiPos 59, 6
Print Space(18)
AnsiPos 59, 7
Print Space(18)
AnsiPos 59, 8
Print Space(18)
AnsiPos 59, 9
Print Space(18)
AnsiPos 59, 10
Print Space(18)
AnsiPos 59, 11
Print Space(18)
AnsiPos 59, 12
Print Space(18)
AnsiPos 59, 13
Print Space(18)
AnsiPos 59, 13
Print Space(18)
AnsiPos 59, 14
Print Space(18)
Return
:LABEL028
If ((INTEGER006 == 1) && (INTEGER014 <> 1)) INTEGER006 = 2
GetAltUser INTEGER006
If (CurUser() == -1) Then
GetAltUser 2
Print "@X8CLost the Record Numer"
Endif
Return
:LABEL029
If ((INTEGER006 == 1) && (INTEGER014 <> 1)) INTEGER006 = 2
GetAltUser INTEGER006
Return
:LABEL030
PutUser
Return
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 End
; 2 Cls
; 132 Goto
; 161 Let
; 112 Print
; 30 PrintLn
; 126 If
; 1 ConfFlag
; 1 ConfUnflag
; 1 DispFile
; 3 FOpen
; 4 FClose
; 1 StartDisp
; 1 GetUser
; 3 PutUser
; 27 InputStr
; 53 Gosub
; 8 Return
; 1 Delay
; 1 Inc
; 3 Newline
; 5 Newlines
; 1 Tokenize
; 1 GetToken
; 1 RdUNet
; 1 WrUNet
; 133 AnsiPos
; 2 SaveScrn
; 3 RestScrn
; 1 FSeek
; 1 FDefIn
; 26 FDGet
; 1 FDRead
; 1 KeyFlush
; 3 GetAltUser
; 1 AdjTBytes
; 1 AdjTFiles
; 1 FReAltUser
;
;
; ■ Functions used :
;
; 7 -
; 1 ^
; 18 *
; 137 +
; 13 -
; 90 ==
; 22 <>
; 2 <
; 2 <=
; 3 >
; 5 >=
; 88 !
; 12 &&
; 4 ||
; 2 Len(
; 4 Upper()
; 4 Mid()
; 4 Left()
; 57 Space()
; 30 Chr()
; 1 RTrim()
; 10 U_Name()
; 1 U_LDate()
; 1 U_Ful()
; 2 U_Fdl()
; 2 U_Bdl()
; 1 U_Bul()
; 2 Inkey()
; 2 String()
; 20 Mask_Ascii()
; 5 PCBDat()
; 2 PPEPath()
; 3 PcbNode()
; 5 ReadLine()
; 1 UN_Stat()
; 1 UN_Name()
; 1 UN_City()
; 1 CurSec()
; 2 Exist()
; 1 TokenStr()
; 2 GetX()
; 2 GetY()
; 17 Psa()
; 3 PPEName()
; 6 U_RecNum()
; 1 ConfReg()
; 1 ConfExp()
; 1 ConfSel()
; 1 ConfSys()
; 5 CurUser()
;
;------------------------------------------------------------------------------
;
; Analysis flags : FWRadH
;
; F - Change conference flags status ■ 2
; This may be normal for a SELECT replacement but it may also be
; a way to get access to conferences a user is not allowed to.
; ■ Search for : CONFFLAG, CONFUNFLAG
;
; 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
;
; R - Read user ■ 5
; User records are read, this may signify that someone wants to get
; various informations about a user (for example his password), but
; this may also be normal for a program accessing user records (for
; example a User Editor)
; ■ Search for : GETALTUSER
;
; 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
;
; d - Access PCBOARD.DAT ■ 2
; Program gets the full pathname to PCBOARD.DAT, this may be usefull
; for many PPE so they can find various informations on the system
; (system paths, max number of lines in messages, ...) but it may also
; be a way to gather vital informations.
; ■ Search for : PCBDAT()
;
; 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
;
;
;------------------------------------------------------------------------------
;
; One or more PPLC bugs were found, this is not a PPLX error, but PPLX is
; reporting the error ;) Some statements like VAR = !!!!10, VAR = !0*!0
; or similar things are not handled correctly by PPLC, some may use this
; to avoid a correct decompilation... This doesn't mean that there is
; actually an error, but the probability of error is high...
; ■ Search for : PPLC BUG
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 2 For/Next
; 6 While/EndWhile
; 77 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------