home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
PCBOARD
/
WHOV036.ZIP
/
WHO.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-03-15
|
12KB
|
585 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
Boolean BOOLEAN002
Boolean BOOLEAN003
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
Integer INTEGER014
Integer INTEGER015
String STRING001
String STRING002
String STRING003
String STRING004
String TSTRING005(99)
String STRING006
String TSTRING007(24)
String TSTRING008(99)
String STRING009
String TSTRING010(3)
String TSTRING011(3)
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
Time TIME001
Time TIME002
BigStr BIGSTR001
;------------------------------------------------------------------------------
STRING001 = "0.36ß"
STRING009 = GetToken()
INTEGER015 = 0
WrUNet PcbNode(), "Q", UN_Name(), UN_City(), "Using: @X03Who V" + STRING001, " "
STRING016 = "WHO [PPE2] V"
STRING019 = "(C) Thrust Brothers"
STRING018 = " - Legends will never die..."
If (Exist(PPEPath() + PPEName() + ".inf")) Goto LABEL001
Newline
SPrintLn " WHO.INF cannot be located! Check for existence!"
Newline
Log "@X03" + STRING016 + STRING001 + " @X09" + STRING019 + " " + Left(STRING009, 2), 1
End
Goto LABEL002
:LABEL001
INTEGER005 = 1
INTEGER012 = ReadLine(PPEPath() + PPEName() + ".inf", INTEGER005)
Inc INTEGER005
For INTEGER007 = 1 To INTEGER012
TSTRING005(INTEGER007) = " " + Left(ReadLine(PPEPath() + PPEName() + ".inf", INTEGER005), 42)
Inc INTEGER005
Next
:LABEL002
If (Exist(PPEPath() + PPEName() + ".dat")) Goto LABEL003
Newline
SPrintLn " WHO.DAT cannot be located! Check for existence!"
Newline
Log "@X03" + STRING016 + STRING001 + " @X09" + STRING019 + " " + Left(STRING009, 2), 1
End
Goto LABEL005
:LABEL003
INTEGER005 = 1
If (ReadLine(PPEPath() + PPEName() + ".dat", INTEGER005) == "ON") Then
BOOLEAN003 = 1
Else
BOOLEAN003 = 0
Endif
If (AnsiOn()) Goto LABEL004
BOOLEAN003 = 0
SPrintLn "enable ANSI at your Config.SYS to get scroller"
:LABEL004
Inc INTEGER005
INTEGER010 = ReadLine(PPEPath() + PPEName() + ".dat", INTEGER005)
Inc INTEGER005
BIGSTR001 = ReadLine(PPEPath() + PPEName() + ".dat", INTEGER005)
Inc INTEGER005
If (BOOLEAN003 == 1) Then
If (Len(StripAtx(BIGSTR001)) > 251) Then
Newline
SPrintLn " SCROLL-LINE longer as 255 Chars!"
Newline
Log "@X03" + STRING016 + STRING001 + " @X09" + STRING019 + " " + Left(STRING009, 2), 1
End
Endif
STRING024 = Left(BIGSTR001, 4)
STRING012 = ""
For INTEGER014 = 0 To 75
STRING012 = STRING012 + Mid(BIGSTR001, 5, 1)
Next
BIGSTR001 = STRING012 + StripAtx(BIGSTR001) + STRING012 + Mid(BIGSTR001, 5, 1)
INTEGER004 = Len(BIGSTR001)
ElseIf (Len(RTrim(Left(StripAtx(BIGSTR001), 74), " ")) < 74) Then
INTEGER004 = Len(RTrim(Left(StripAtx(BIGSTR001), 74), " "))
BIGSTR001 = Left(BIGSTR001, 4) + Space((74 - INTEGER004) / 2) + BIGSTR001 + Space((74 - INTEGER004) / 2)
Else
BIGSTR001 = Left(BIGSTR001, 4) + Left(StripAtx(BIGSTR001), 74)
Endif
STRING017 = ReadLine(PPEPath() + PPEName() + ".dat", INTEGER005)
Inc INTEGER005
For INTEGER007 = 0 To 23
TSTRING007(INTEGER007) = Left(ReadLine(PPEPath() + PPEName() + ".dat", INTEGER005 + INTEGER007), 25)
STRING003 = Left(TSTRING007(INTEGER007), 4) + Mid(TSTRING007(INTEGER007), 5, Len(TSTRING007(INTEGER007)) - 4) + Space(30)
TSTRING007(INTEGER007) = Left(STRING003, 25)
Next
STRING013 = Left(ReadLine(PPEPath() + PPEName() + ".dat", INTEGER005 + INTEGER007), 4)
STRING014 = Left(ReadLine(PPEPath() + PPEName() + ".dat", INTEGER005 + INTEGER007 + 1), 4)
STRING015 = Left(ReadLine(PPEPath() + PPEName() + ".dat", INTEGER005 + INTEGER007 + 2), 4)
STRING021 = Left(ReadLine(PPEPath() + PPEName() + ".dat", INTEGER005 + INTEGER007 + 3), 5)
:LABEL005
If (Exist(PPEPath() + PPEName() + ".top")) Goto LABEL006
Newline
SPrintLn " WHO.TOP cannot be located! Check for existence!"
Newline
Log "@X03" + STRING016 + STRING001 + " @X09" + STRING019 + " " + Left(STRING009, 2), 1
End
Goto LABEL009
:LABEL006
INTEGER002 = 0
FOpen 2, PPEPath() + PPEName() + ".top", 0, 0
FGet 2, TSTRING010(INTEGER002)
:LABEL007
If (Ferr(2)) Goto LABEL008
Inc INTEGER002
FGet 2, TSTRING010(INTEGER002)
Goto LABEL007
:LABEL008
FClose 2
:LABEL009
If (Exist(PPEPath() + PPEName() + ".bot")) Goto LABEL010
Newline
SPrintLn " WHO.BOT cannot be located! Check for existence!"
Newline
Log "@X03" + STRING016 + STRING001 + " @X09" + STRING019 + " " + Left(STRING009, 2), 1
End
Goto LABEL013
:LABEL010
INTEGER003 = 0
FOpen 2, PPEPath() + PPEName() + ".BOT", 0, 0
FGet 2, TSTRING011(INTEGER003)
:LABEL011
If (Ferr(2)) Goto LABEL012
Inc INTEGER003
FGet 2, TSTRING011(INTEGER003)
Goto LABEL011
:LABEL012
FClose 2
:LABEL013
INTEGER008 = 0
If (Exist(PPEPath() + PPEName() + ".hid")) Then
FOpen 2, PPEPath() + PPEName() + ".hid", 0, 0
FGet 2, INTEGER006
:LABEL014
If (Ferr(2)) Goto LABEL015
Inc INTEGER008
FGet 2, TSTRING008(INTEGER008)
Goto LABEL014
:LABEL015
FClose 2
Endif
BOOLEAN002 = 0
GetUser
If (INTEGER006 <= U_Sec) Then
BOOLEAN002 = 1
Endif
STRING023 = Chr(10) + Chr(37) + Chr(11) + Chr(2) + Chr(54) + Chr(74) + Chr(84) + Chr(87) + Chr(85) + Chr(86) + Chr(2) + Chr(36) + Chr(84) + Chr(81) + Chr(86) + Chr(74) + Chr(71) + Chr(84) + Chr(85)
STRING022 = Chr(2) + Chr(15) + Chr(2) + Chr(46) + Chr(71) + Chr(73) + Chr(71) + Chr(80) + Chr(70) + Chr(85) + Chr(2) + Chr(89) + Chr(75) + Chr(78) + Chr(78) + Chr(2) + Chr(80) + Chr(71) + Chr(88) + Chr(71) + Chr(84) + Chr(2) + Chr(70) + Chr(75) + Chr(71) + Chr(16) + Chr(16) + Chr(16)
If (OnLocal()) Goto LABEL016
STRING012 = ""
For INTEGER007 = 1 To Len(STRING023)
STRING012 = STRING012 + Chr(Asc(Mid(STRING023, INTEGER007, 1)) + 30)
Next
STRING023 = STRING012
STRING012 = ""
For INTEGER007 = 1 To Len(STRING022)
STRING012 = STRING012 + Chr(Asc(Mid(STRING022, INTEGER007, 1)) + 30)
Next
STRING022 = STRING012
:LABEL016
StartDisp 1
If (STRING009 == "WP") Then
KbdChkOff
INTEGER013 = 1
Cls
Endif
STRING004 = ReadLine(PCBDat(), 30)
:LABEL017
If (STRING009 == "WP") Then
AnsiPos 1, 1
Inc INTEGER013
If (INTEGER013 > 20) Then
Print "@X07"
Cls
INTEGER013 = 1
Endif
Endif
Newline
For INTEGER014 = 0 To INTEGER002 - 1
PrintLn TSTRING010(INTEGER014)
Next
For INTEGER001 = 1 To INTEGER012
RdUNet INTEGER001
If ((UN_Stat() == "") && (STRING017 == "YES")) Then
PrintLn STRING014, STRING003, TSTRING007(23), STRING013, STRING006, " ", TSTRING005(INTEGER001)
Continue
Endif
TIME001 = FileInf(STRING004 + String(INTEGER001), 3)
TIME002 = Time() - TIME001
If (TIME002 < 0) Then
TIME002 = TIME002 + 86400
Endif
TIME001 = TIME002
STRING006 = Left(String(TIME001), 5)
STRING003 = Space(1) + String(INTEGER001)
If (INTEGER001 < 10) Then
STRING003 = Space(1) + STRING003
Endif
STRING020 = UN_Name()
BOOLEAN001 = 0
If (BOOLEAN002 == 0) Then
If (INTEGER008 > 0) Then
If (INTEGER001 == PcbNode()) Goto LABEL018
For INTEGER009 = 1 To INTEGER008 - 1
If (Upper(TSTRING008(INTEGER009)) == STRING020) Then
PrintLn STRING014, STRING003, " ", TSTRING007(0), STRING013, STRING006, " ", TSTRING005(INTEGER001)
BOOLEAN001 = 1
Continue
Endif
Next
Endif
:LABEL018
If (BOOLEAN001 == 1) Then
Continue
Endif
Endif
If (UN_Stat() == " ") Then
PrintLn STRING014, STRING003, " ", TSTRING007(0), STRING013, STRING006, " ", TSTRING005(INTEGER001)
Continue
Endif
If (UN_Stat() == "U") Then
Print STRING014, STRING003, " ", TSTRING007(18), STRING013, STRING006
PrintLn " ", STRING015, STRING020, " - ", UN_City()
Continue
Endif
If (UN_Stat() == "Y") Then
PrintLn STRING014, STRING003, " ", TSTRING007(20), STRING013, STRING006, " ", TSTRING005(INTEGER001)
Continue
Endif
If (UN_Stat() == "Z") Then
PrintLn STRING014, STRING003, " ", TSTRING007(21), STRING013, STRING006, " ", TSTRING005(INTEGER001)
Continue
Endif
If ((Left(UN_Oper(), 3) == "(D)") && (UN_Stat() == "T")) Then
Print STRING014, STRING003, " ", TSTRING007(1), STRING013, STRING006
PrintLn " ", STRING015, STRING020, " - ", UN_City()
Continue
Endif
If ((UN_Stat() == "T") && (Left(UN_Oper(), 1) == " ")) Then
Print STRING014, STRING003, " ", TSTRING007(2), STRING013, STRING006
PrintLn " ", STRING015, STRING020, " - ", UN_City()
Continue
Endif
If (Left(UN_Oper(), 3) == "(U)") Then
Print STRING014, STRING003, " ", TSTRING007(3), STRING013, STRING006
PrintLn " ", STRING015, STRING020, " - ", UN_City()
Continue
Endif
If (UN_Stat() == "E") Then
Print STRING014, STRING003, " "
If (Mid(TSTRING007(8), 5, 1) == "@") Then
Print Left(TSTRING007(8), 4), Lower(Mid(UN_Oper(), 5, 21))
Goto LABEL019
Endif
Print TSTRING007(8)
:LABEL019
Print STRING013, STRING006
PrintLn " ", STRING015, STRING020, " - ", UN_City()
Continue
Endif
If (UN_Stat() == "F") Then
Print STRING014, STRING003, " "
If (Mid(TSTRING007(9), 5, 1) == "@") Then
Print Left(TSTRING007(9), 4), Left(UN_Oper(), 3), Lower(Mid(UN_Oper(), 4, 18))
Goto LABEL020
Endif
Print TSTRING007(9)
:LABEL020
Print STRING013, STRING006
PrintLn " ", STRING015, STRING020, " - ", UN_City()
Continue
Endif
If (UN_Stat() == "A") Then
Print STRING014, STRING003, " ", STRING021, TSTRING007(4), STRING013, STRING006
PrintLn " ", STRING015, STRING020, " - ", UN_City()
Continue
Endif
If (UN_Stat() == "B") Then
Print STRING014, STRING003, " ", TSTRING007(5), STRING013, STRING006
PrintLn " ", STRING015, STRING020, " - ", UN_City()
Continue
Endif
If (UN_Stat() == "C") Then
Print STRING014, STRING003, " ", TSTRING007(6), STRING013, STRING006
PrintLn " ", STRING015, STRING020, " - ", UN_City()
Continue
Endif
If (UN_Stat() == "D") Then
Print STRING014, STRING003, " ", TSTRING007(7), STRING013, STRING006
PrintLn " ", STRING015, STRING020, " - ", UN_City()
Continue
Endif
If (UN_Stat() == "G") Then
Print STRING014, STRING003, " ", TSTRING007(10), STRING013, STRING006
PrintLn " ", STRING015, STRING020, " - ", UN_City()
Continue
Endif
If (UN_Stat() == "L") Then
Print STRING014, STRING003, " ", TSTRING007(11), STRING013, STRING006
PrintLn " ", STRING015, STRING020, " - ", UN_City()
Continue
Endif
If (UN_Stat() == "N") Then
Print STRING014, STRING003, " "
If (Mid(TSTRING007(13), 5, 1) == "@") Then
Print Left(TSTRING007(13), 4), Lower(Mid(UN_Oper(), 1, 21))
Goto LABEL021
Endif
Print TSTRING007(13)
:LABEL021
PrintLn STRING013, STRING006
Continue
Endif
If (UN_Stat() == "Q") Then
Print STRING014, STRING003, " "
If (Mid(TSTRING007(22), 5, 1) == "@") Then
STRING002 = UN_Oper()
If (Len(STRING002) == Len(StripAtx(STRING002))) Then
Print Left(TSTRING007(22), 4), Mid(UN_Oper(), 1, 21)
Endif
If (Len(STRING002) == Len(StripAtx(STRING002))) Goto LABEL022
Print Left(TSTRING007(22), 4), Mid(UN_Oper(), 1, 25)
:LABEL022
Goto LABEL023
Endif
Print TSTRING007(22)
:LABEL023
Print STRING013, STRING006
PrintLn " ", STRING015, STRING020, " - ", UN_City()
Continue
Endif
If (UN_Stat() == "O") Then
PrintLn STRING014, STRING003, " ", TSTRING007(14), STRING013, STRING006
Continue
Endif
If (UN_Stat() == "P") Then
Print STRING014, STRING003, " ", TSTRING007(15), STRING013, STRING006
PrintLn " ", STRING015, STRING020, " - ", UN_City()
Continue
Endif
If (UN_Stat() == "R") Then
PrintLn STRING014, STRING003, " ", TSTRING007(16), STRING013, STRING006
Continue
Endif
If (UN_Stat() == "S") Then
Print STRING014, STRING003, " ", TSTRING007(17), STRING013, STRING006
PrintLn " ", STRING015, STRING020, " - ", UN_City()
Continue
Endif
If (UN_Stat() == "W") Then
Print STRING014, STRING003, " ", TSTRING007(19), STRING013, STRING006
PrintLn " ", STRING015, STRING020, " - ", UN_City()
Continue
Endif
If ((((UN_Stat() == "H") || (UN_Stat() == "I")) || (UN_Stat() == "K")) || (UN_Stat() == "V")) Then
Print STRING014, STRING003, " ", TSTRING007(22)
PrintLn " ", STRING015, STRING020, " - ", UN_City()
Continue
Endif
If ((UN_Stat() == "M") && !(Left(UN_Oper(), 1) == "(")) Then
Print STRING014, STRING003, " ", TSTRING007(12), STRING013, STRING006
PrintLn " ", STRING015, STRING020, " - ", UN_City()
Continue
Endif
If ((UN_Stat() == "M") && (Left(UN_Oper(), 3) == "(U)")) Then
Print STRING014, STRING003, " ", TSTRING007(3), STRING013, STRING006
PrintLn " ", STRING015, STRING020, " - ", UN_City()
Continue
Endif
If ((UN_Stat() == "M") && (Left(UN_Oper(), 3) == "(D)")) Then
Print STRING014, STRING003, " ", TSTRING007(1), STRING013, STRING006
PrintLn " ", STRING015, STRING020, " - ", UN_City()
Continue
Endif
Next
FreshLine
If (INTEGER015 == 1) Then
Newline
Endif
For INTEGER014 = INTEGER015 To INTEGER003 - 1
PrintLn TSTRING011(INTEGER014)
Next
INTEGER015 = 1
Print Space(6), "@X03", STRING016, STRING001, " @X09"
SPrint STRING019, STRING018
MPrint STRING023, STRING022
If (STRING009 == "WP") Goto LABEL024
Goto LABEL025
:LABEL024
If (BOOLEAN003 == 1) Then
AnsiPos 3, GetY() - INTEGER003
For INTEGER014 = 0 To INTEGER004 - 75
Print STRING024, Mid(BIGSTR001, INTEGER014, 75)
AnsiPos 3, GetY()
For INTEGER011 = 0 To INTEGER010
Next
STRING025 = Inkey()
If (STRING025 == "") Continue
AnsiPos 1, GetY()
Print TSTRING011(0)
AnsiPos 1, GetY() + INTEGER003
Goto LABEL025
Next
Else
AnsiPos 3, GetY() - INTEGER003
Print BIGSTR001
For INTEGER011 = 0 To 50 * INTEGER010
STRING025 = Inkey()
If (STRING025 == "") Continue
AnsiPos 1, GetY()
Print TSTRING011(0)
AnsiPos 1, GetY() + INTEGER003
Goto LABEL025
Next
Endif
Goto LABEL017
:LABEL025
StartDisp 2
PrintLn " "
KbdChkOn
If (OnLocal()) Goto LABEL026
Log "@X03" + STRING016 + STRING001 + " @X09" + STRING019 + " " + Left(STRING009, 2), 1
:LABEL026
End
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 6 End
; 2 Cls
; 136 Goto
; 85 Let
; 39 Print
; 31 PrintLn
; 76 If
; 3 FOpen
; 3 FClose
; 6 FGet
; 2 StartDisp
; 1 GetUser
; 6 Log
; 10 Inc
; 12 Newline
; 1 KbdChkOn
; 1 KbdChkOff
; 1 RdUNet
; 1 WrUNet
; 8 AnsiPos
; 1 FreshLine
; 1 SPrint
; 6 SPrintLn
; 1 MPrint
;
;
; ■ Functions used :
;
; 2 *
; 2 /
; 161 +
; 14 -
; 55 ==
; 15 <
; 13 <=
; 3 >
; 24 >=
; 77 !
; 30 &&
; 15 ||
; 13 Len(
; 3 Lower()
; 1 Upper()
; 15 Mid()
; 33 Left()
; 6 Space()
; 3 Ferr()
; 49 Chr()
; 2 Asc()
; 2 RTrim()
; 1 Time()
; 7 StripAtx()
; 2 Inkey()
; 3 String()
; 1 PCBDat()
; 19 PPEPath()
; 2 PcbNode()
; 12 ReadLine()
; 2 OnLocal()
; 29 UN_Stat()
; 2 UN_Name()
; 21 UN_City()
; 13 UN_Oper()
; 1 GetToken()
; 5 Exist()
; 1 AnsiOn()
; 7 GetY()
; 1 FileInf()
; 19 PPEName()
;
;------------------------------------------------------------------------------
;
; Analysis flags : Md
;
; 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
;
; 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()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 12 For/Next
; 0 While/EndWhile
; 49 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------