home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carsten's PPE Collection
/
Carstens_PPE_Collection_2007.zip
/
S
/
SCUMNM10.ZIP
/
MONITOR.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-09-10
|
8KB
|
471 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
String TSTRING001(18)
String TSTRING002(1)
String STRING003
String STRING004
String STRING005
String STRING006
String STRING008
String STRING009
SByte SBYTE001
SByte SBYTE002
SByte SBYTE003
SByte SBYTE004
SByte SBYTE005
SByte SBYTE006
Declare Function FUNCTION002(SByte SBYTE008) String
Declare Procedure PROC001()
Declare Procedure PROC002()
Declare Procedure PROC003()
Declare Procedure PROC004()
Declare Procedure PROC005()
Declare Procedure PROC006(SByte SBYTE007)
Declare Procedure PROC007(String STRING007)
;------------------------------------------------------------------------------
StartDisp 1
PROC001()
PROC005()
RdUNet PcbNode()
WrUNet PcbNode(), "!", UN_Name(), UN_City(), ReadLine(TSTRING002(1), 2), ""
PROC002()
End
;------------------------------------------------------------------------------
Procedure PROC001()
SByte SBYTE004
TSTRING002(1) = PPEPath() + PPEName() + ".CNF"
Cls
If (Exist(TSTRING002(1))) Goto LABEL001
Newline
PrintLn "@X08Cannot find " + PPEPath() + PPEName() + ".CNF"
Newline
End
:LABEL001
For SBYTE003 = 1 To MaxNode()
RdUNet SBYTE003
If ((UN_Stat() == "!") && (UN_Oper() == ReadLine(TSTRING002(1), 1))) Then
Newline
PrintLn "Someone else is monitoring a Node."
PrintLn "You cannot monitor a Node while another user is being Monitored."
Newline
End
Endif
If (UN_Stat() == "") Continue
Inc SBYTE001
SBYTE004 = SBYTE003
Next
SBYTE001 = SBYTE004
RdUNet PcbNode()
WrUNet PcbNode(), "!", UN_Name(), UN_City(), ReadLine(TSTRING002(1), 1), ""
EndProc
;------------------------------------------------------------------------------
Procedure PROC002()
Newline
PrintLn "@X08SCuM Node-Monitor: Written by NotB"
Newline
EndProc
;------------------------------------------------------------------------------
Procedure PROC003()
STRING003 = Mid(String(TimeAp(Time())), 1, 5) + Mid(String(TimeAp(Time())), 9, 3)
PrintLn "@X08╒════════╤═══════════════════════════╤════════════════════════════════════════╕"
For SBYTE003 = 1 To SBYTE001
RdUNet SBYTE003
TSTRING001(SBYTE003) = UN_Stat()
Print "@X08│ @X0FNode " + String(SBYTE003) + Space(2 - Len(String(SBYTE003))) + "@X08│ @X0B"
If (UN_Name() == "") Then
Print "Nobody Online" + Space(12)
Else
Print Mixed(UN_Name()) + Space(25 - Len(UN_Name()))
Endif
PrintLn " @X08│ @X0D" + FUNCTION002(SBYTE003) + Space(38 - Len(FUNCTION002(SBYTE003))) + " @X08│"
If (((!(SBYTE001 > 18) && !(SBYTE003 == SBYTE001)) && !(SBYTE003 == 18)) && (!(SBYTE003 == 9) && (SBYTE001 < 10))) PrintLn "@X08├────────┼───────────────────────────┼────────────────────────────────────────┤"
Next
PrintLn "@X08╘════════╧═══════════════════════════╧════════════════════════════════════════╛"
AnsiPos 1, 22
PrintLn "@X08╒═════════════════════════════════════════════════════════════════════════════╕"
Print "@X08└─ [SCuM] NodeMonitor v1.00 ───────────────────────────────────────[" + STRING003 + "]─┘"
AnsiPos 1, 21
Print "@X08[@X0FEnter@X08]=@X0FExit @X08/ @X0FView All Activity of Node #@X08: "
EndProc
;------------------------------------------------------------------------------
Procedure PROC004()
SByte SBYTE005
SByte SBYTE006
Boolean BOOLEAN001
SBYTE006 = SBYTE001
SBYTE001 = 0
For SBYTE003 = 1 To 18
RdUNet SBYTE003
If (!(TSTRING001(SBYTE003) == UN_Stat()) && !(UN_Stat() == "")) BOOLEAN001 = 1
If (UN_Name() == "") Continue
Inc SBYTE001
SBYTE005 = SBYTE003
Next
If (BOOLEAN001 == 1) Then
BOOLEAN001 = 0
TSTRING001(SBYTE003) = UN_Stat()
AnsiPos 1, 1
PROC003()
Endif
SBYTE001 = SBYTE005
If (SBYTE001 == SBYTE006) Goto LABEL002
Cls
PROC003()
:LABEL002
If (Mid(String(TimeAp(Time())), 1, 5) + Mid(String(TimeAp(Time())), 9, 3) == STRING003) Goto LABEL003
AnsiPos 69, 23
STRING003 = Mid(String(TimeAp(Time())), 1, 5) + Mid(String(TimeAp(Time())), 9, 3)
Print STRING003
:LABEL003
EndProc
;------------------------------------------------------------------------------
Procedure PROC005()
Boolean BOOLEAN002
Boolean BOOLEAN003
String STRING004
String STRING005
PROC003()
SBYTE002 = SBYTE001
:LABEL004
If (BOOLEAN002) Goto LABEL011
AnsiPos 1, 1
PROC004()
STRING004 = ""
STRING004 = Inkey()
If (STRING004 == "") Goto LABEL010
If ((STRING004 == Chr(13)) || (STRING004 == Chr(27))) Then
BOOLEAN002 = 1
ElseIf ((((((((STRING004 == "2") || (STRING004 == "3")) || (STRING004 == "4")) || (STRING004 == "5")) || (STRING004 == "6")) || (STRING004 == "7")) || (STRING004 == "8")) || (STRING004 == "9")) Then
If (S2I(STRING004, SBYTE003) > SBYTE001) Goto LABEL005
PROC006(S2I(STRING004, SBYTE003))
Cls
PROC003()
:LABEL005
ElseIf (STRING004 == "1") Then
STRING005 = ""
If (SBYTE001 > 9) Then
BOOLEAN003 = 0
:LABEL006
If (BOOLEAN003) Goto LABEL009
STRING005 = ""
STRING005 = Inkey()
If (STRING005 == Chr(13)) Then
BOOLEAN002 = 1
PROC006(1)
Cls
PROC003()
Goto LABEL008
Endif
If (STRING005 == Chr(8)) Then
BOOLEAN003 = 1
Goto LABEL008
Endif
If (STRING005 == Chr(27)) Then
BOOLEAN002 = 1
BOOLEAN003 = 1
Goto LABEL008
Endif
If (((((((((STRING005 == "0") || (STRING005 == "1")) || (STRING005 == "2")) || (STRING005 == "3")) || (STRING005 == "4")) || (STRING005 == "5")) || (STRING005 == "6")) || (STRING005 == "7")) || (STRING005 == "8")) Then
If (S2I(STRING004 + STRING005, SBYTE003) - 9 > SBYTE001) Goto LABEL007
PROC006(S2I(STRING004 + STRING005, SBYTE003) - 9)
Cls
PROC003()
:LABEL007
BOOLEAN003 = 1
Endif
:LABEL008
Goto LABEL006
:LABEL009
Goto LABEL010
Endif
If (SBYTE001 < 10) Then
PROC006(1)
Cls
PROC003()
Endif
Endif
:LABEL010
Goto LABEL004
:LABEL011
AnsiPos 1, 23
Newline
EndProc
RdUNet
If (UN_Stat() == "!") Then
BOOLEAN004 = 0
Else
BOOLEAN004 = 1
Endif
EndFunc
;------------------------------------------------------------------------------
Procedure PROC006(SByte SBYTE007)
String STRING006
Boolean BOOLEAN005
Cls
FCreate 1, PPEPath() + PPEName() + "." + String(SBYTE007), 1, 0
FPutLn 1, PcbNode()
FPutLn 1, U_Name()
FClose 1
RdUNet SBYTE007
If ((U_RecNum(UN_Name()) == U_RecNum(U_Name())) || ((UN_Name() == "SYSOP") && (U_RecNum(U_Name()) == 1))) Then
PROC007("You cannot monitor your own node.")
Newline
Wait
Return
ElseIf ((UN_Stat() == "Z") || (UN_Stat() == "")) Then
PROC007("This node is either offline or nobody has logged into it yet and is")
PROC007("usually not an interesting thing to watch so I'm not going to let you.")
Newline
Wait
Return
ElseIf ((UN_Stat() == "!") && (UN_Oper() == ReadLine(TSTRING002(1), 1))) Then
PROC007("This node is monitoring someone right now and would not be interesting")
PROC007("to you. <grin>")
Newline
Wait
Return
Endif
For SBYTE003 = 1 To 15
Color SBYTE003
AnsiPos 1, 13
PROC007("Now Monitoring Node " + String(SBYTE007))
Delay 10
Next
Cls
:LABEL012
If (BOOLEAN005) Goto LABEL013
STRING006 = ""
STRING006 = Inkey()
If (STRING006 == Chr(27)) BOOLEAN005 = 1
If (Exist(PPEPath() + PPEName() + "1.V" + String(SBYTE007))) Then
DispFile PPEPath() + PPEName() + "1.V" + String(SBYTE007), 0
Delete PPEPath() + PPEName() + "1.V" + String(SBYTE007)
Endif
Goto LABEL012
:LABEL013
WrUNet SBYTE007, UN_Stat(), UN_Name(), UN_City(), UN_Oper(), ""
EndProc
;------------------------------------------------------------------------------
Procedure PROC007(String STRING007)
SBYTE003 = (80 - Len(StripAtx(STRING007))) / 2 + 1
AnsiPos SBYTE003, GetY()
Print STRING007
Color 7
EndProc
;------------------------------------------------------------------------------
Function FUNCTION002(SByte SBYTE008) String
String STRING009
Select Case (UN_Stat())
Case "A"
FUNCTION002 = ReadLine(TSTRING002(1), 2)
Case "!"
FUNCTION002 = UN_Oper()
Case "$"
FUNCTION002 = ReadLine(TSTRING002(1), 3)
Case "U"
FUNCTION002 = ReadLine(TSTRING002(1), 4)
Case "O"
FUNCTION002 = ReadLine(TSTRING002(1), 5)
Case "S"
FUNCTION002 = ReadLine(TSTRING002(1), 6)
Case "B"
FUNCTION002 = ReadLine(TSTRING002(1), 7)
Case "T"
STRING009 = Left(UN_Oper(), 3)
Select Case (STRING009)
Case "(U)"
FUNCTION002 = ReadLine(TSTRING002(1), 8)
Case "(D)"
FUNCTION002 = ReadLine(TSTRING002(1), 9)
Case Else
FUNCTION002 = ReadLine(TSTRING002(1), 10)
End Select
Case "D"
FUNCTION002 = ReadLine(TSTRING002(1), 11)
Case "C"
FUNCTION002 = ReadLine(TSTRING002(1), 12)
Case "G"
FUNCTION002 = ReadLine(TSTRING002(1), 13)
Case "M"
FUNCTION002 = ReadLine(TSTRING002(1), 14)
Case "E"
FUNCTION002 = ReadLine(TSTRING002(1), 15)
Case "P"
FUNCTION002 = ReadLine(TSTRING002(1), 16)
Case "W"
FUNCTION002 = ReadLine(TSTRING002(1), 17)
Case "R"
FUNCTION002 = ReadLine(TSTRING002(1), 18)
Case "L"
FUNCTION002 = ReadLine(TSTRING002(1), 19)
Case "X"
FUNCTION002 = ReadLine(TSTRING002(1), 20)
Case "F"
FUNCTION002 = ReadLine(TSTRING002(1), 21)
Case "N"
FUNCTION002 = ReadLine(TSTRING002(1), 22)
Case "Z"
FUNCTION002 = ReadLine(TSTRING002(1), 23)
Case Else
FUNCTION002 = ReadLine(TSTRING002(1), 24)
End Select
EndFunc
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 3 End
; 8 Cls
; 3 Wait
; 2 Color
; 96 Goto
; 65 Let
; 7 Print
; 9 PrintLn
; 58 If
; 1 DispFile
; 1 FCreate
; 1 FClose
; 2 FPutLn
; 1 StartDisp
; 1 Delete
; 3 Return
; 1 Delay
; 2 Inc
; 10 Newline
; 7 RdUNet
; 3 WrUNet
; 8 AnsiPos
; 7 EndProc
; 2 EndFunc
;
;
; ■ Functions used :
;
; 1 /
; 38 +
; 6 -
; 69 ==
; 6 <
; 4 <=
; 4 >
; 8 >=
; 61 !
; 16 &&
; 22 ||
; 4 Len(
; 6 Mid()
; 1 Left()
; 4 Space()
; 6 Chr()
; 6 Time()
; 3 U_Name()
; 6 TimeAp()
; 1 StripAtx()
; 3 Inkey()
; 13 String()
; 6 PPEPath()
; 5 PcbNode()
; 27 ReadLine()
; 32 UN_Stat()
; 9 UN_Name()
; 3 UN_City()
; 5 UN_Oper()
; 2 Exist()
; 4 S2I()
; 1 GetY()
; 6 PPEName()
; 2 MaxNode()
; 3 U_RecNum()
; 1 Mixed()
;
;------------------------------------------------------------------------------
;
; Analysis flags : No flag
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 4 For/Next
; 0 While/EndWhile
; 17 If/Then or If/Then/Else
; 2 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------