home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / S / SCUMNM10.ZIP / MONITOR.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-09-10  |  8KB  |  471 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     Boolean  BOOLEAN005
  24.     String   TSTRING001(18)
  25.     String   TSTRING002(1)
  26.     String   STRING003
  27.     String   STRING004
  28.     String   STRING005
  29.     String   STRING006
  30.     String   STRING008
  31.     String   STRING009
  32.     SByte    SBYTE001
  33.     SByte    SBYTE002
  34.     SByte    SBYTE003
  35.     SByte    SBYTE004
  36.     SByte    SBYTE005
  37.     SByte    SBYTE006
  38.     Declare  Function FUNCTION002(SByte SBYTE008) String
  39.     Declare  Procedure PROC001()
  40.     Declare  Procedure PROC002()
  41.     Declare  Procedure PROC003()
  42.     Declare  Procedure PROC004()
  43.     Declare  Procedure PROC005()
  44.     Declare  Procedure PROC006(SByte SBYTE007)
  45.     Declare  Procedure PROC007(String STRING007)
  46.  
  47. ;------------------------------------------------------------------------------
  48.  
  49.     StartDisp 1
  50.     PROC001()
  51.     PROC005()
  52.     RdUNet PcbNode()
  53.     WrUNet PcbNode(), "!", UN_Name(), UN_City(), ReadLine(TSTRING002(1), 2), ""
  54.     PROC002()
  55.     End
  56.  
  57. ;------------------------------------------------------------------------------
  58.  
  59.     Procedure PROC001()
  60.  
  61.     SByte    SBYTE004
  62.  
  63.     TSTRING002(1) = PPEPath() + PPEName() + ".CNF"
  64.     Cls
  65.     If (Exist(TSTRING002(1))) Goto LABEL001
  66.     Newline
  67.     PrintLn "@X08Cannot find " + PPEPath() + PPEName() + ".CNF"
  68.     Newline
  69.     End
  70.     :LABEL001
  71.     For SBYTE003 = 1 To MaxNode()
  72.         RdUNet SBYTE003
  73.         If ((UN_Stat() == "!") && (UN_Oper() == ReadLine(TSTRING002(1), 1))) Then
  74.             Newline
  75.             PrintLn "Someone else is monitoring a Node."
  76.             PrintLn "You cannot monitor a Node while another user is being Monitored."
  77.             Newline
  78.             End
  79.         Endif
  80.         If (UN_Stat() == "") Continue
  81.         Inc SBYTE001
  82.         SBYTE004 = SBYTE003
  83.     Next
  84.     SBYTE001 = SBYTE004
  85.     RdUNet PcbNode()
  86.     WrUNet PcbNode(), "!", UN_Name(), UN_City(), ReadLine(TSTRING002(1), 1), ""
  87.  
  88.     EndProc
  89.  
  90.  
  91. ;------------------------------------------------------------------------------
  92.  
  93.     Procedure PROC002()
  94.  
  95.     Newline
  96.     PrintLn "@X08SCuM Node-Monitor: Written by NotB"
  97.     Newline
  98.  
  99.     EndProc
  100.  
  101.  
  102. ;------------------------------------------------------------------------------
  103.  
  104.     Procedure PROC003()
  105.  
  106.     STRING003 = Mid(String(TimeAp(Time())), 1, 5) + Mid(String(TimeAp(Time())), 9, 3)
  107.     PrintLn "@X08╒════════╤═══════════════════════════╤════════════════════════════════════════╕"
  108.     For SBYTE003 = 1 To SBYTE001
  109.         RdUNet SBYTE003
  110.         TSTRING001(SBYTE003) = UN_Stat()
  111.         Print "@X08│ @X0FNode " + String(SBYTE003) + Space(2 - Len(String(SBYTE003))) + "@X08│ @X0B"
  112.         If (UN_Name() == "") Then
  113.             Print "Nobody Online" + Space(12)
  114.         Else
  115.             Print Mixed(UN_Name()) + Space(25 - Len(UN_Name()))
  116.         Endif
  117.         PrintLn " @X08│ @X0D" + FUNCTION002(SBYTE003) + Space(38 - Len(FUNCTION002(SBYTE003))) + " @X08│"
  118.         If (((!(SBYTE001 > 18) && !(SBYTE003 == SBYTE001)) && !(SBYTE003 == 18)) && (!(SBYTE003 == 9) && (SBYTE001 < 10))) PrintLn "@X08├────────┼───────────────────────────┼────────────────────────────────────────┤"
  119.     Next
  120.     PrintLn "@X08╘════════╧═══════════════════════════╧════════════════════════════════════════╛"
  121.     AnsiPos 1, 22
  122.     PrintLn "@X08╒═════════════════════════════════════════════════════════════════════════════╕"
  123.     Print "@X08└─ [SCuM] NodeMonitor v1.00 ───────────────────────────────────────[" + STRING003 + "]─┘"
  124.     AnsiPos 1, 21
  125.     Print "@X08[@X0FEnter@X08]=@X0FExit @X08/ @X0FView All Activity of Node #@X08: "
  126.  
  127.     EndProc
  128.  
  129.  
  130. ;------------------------------------------------------------------------------
  131.  
  132.     Procedure PROC004()
  133.  
  134.     SByte    SBYTE005
  135.     SByte    SBYTE006
  136.     Boolean  BOOLEAN001
  137.  
  138.     SBYTE006 = SBYTE001
  139.     SBYTE001 = 0
  140.     For SBYTE003 = 1 To 18
  141.         RdUNet SBYTE003
  142.         If (!(TSTRING001(SBYTE003) == UN_Stat()) && !(UN_Stat() == "")) BOOLEAN001 = 1
  143.         If (UN_Name() == "") Continue
  144.         Inc SBYTE001
  145.         SBYTE005 = SBYTE003
  146.     Next
  147.     If (BOOLEAN001 == 1) Then
  148.         BOOLEAN001 = 0
  149.         TSTRING001(SBYTE003) = UN_Stat()
  150.         AnsiPos 1, 1
  151.         PROC003()
  152.     Endif
  153.     SBYTE001 = SBYTE005
  154.     If (SBYTE001 == SBYTE006) Goto LABEL002
  155.     Cls
  156.     PROC003()
  157.     :LABEL002
  158.     If (Mid(String(TimeAp(Time())), 1, 5) + Mid(String(TimeAp(Time())), 9, 3) == STRING003) Goto LABEL003
  159.     AnsiPos 69, 23
  160.     STRING003 = Mid(String(TimeAp(Time())), 1, 5) + Mid(String(TimeAp(Time())), 9, 3)
  161.     Print STRING003
  162.     :LABEL003
  163.  
  164.     EndProc
  165.  
  166.  
  167. ;------------------------------------------------------------------------------
  168.  
  169.     Procedure PROC005()
  170.  
  171.     Boolean  BOOLEAN002
  172.     Boolean  BOOLEAN003
  173.     String   STRING004
  174.     String   STRING005
  175.  
  176.     PROC003()
  177.     SBYTE002 = SBYTE001
  178.     :LABEL004
  179.     If (BOOLEAN002) Goto LABEL011
  180.     AnsiPos 1, 1
  181.     PROC004()
  182.     STRING004 = ""
  183.     STRING004 = Inkey()
  184.     If (STRING004 == "") Goto LABEL010
  185.     If ((STRING004 == Chr(13)) || (STRING004 == Chr(27))) Then
  186.         BOOLEAN002 = 1
  187.     ElseIf ((((((((STRING004 == "2") || (STRING004 == "3")) || (STRING004 == "4")) || (STRING004 == "5")) || (STRING004 == "6")) || (STRING004 == "7")) || (STRING004 == "8")) || (STRING004 == "9")) Then
  188.         If (S2I(STRING004, SBYTE003) > SBYTE001) Goto LABEL005
  189.         PROC006(S2I(STRING004, SBYTE003))
  190.         Cls
  191.         PROC003()
  192.         :LABEL005
  193.     ElseIf (STRING004 == "1") Then
  194.         STRING005 = ""
  195.         If (SBYTE001 > 9) Then
  196.             BOOLEAN003 = 0
  197.             :LABEL006
  198.             If (BOOLEAN003) Goto LABEL009
  199.             STRING005 = ""
  200.             STRING005 = Inkey()
  201.             If (STRING005 == Chr(13)) Then
  202.                 BOOLEAN002 = 1
  203.                 PROC006(1)
  204.                 Cls
  205.                 PROC003()
  206.                 Goto LABEL008
  207.             Endif
  208.             If (STRING005 == Chr(8)) Then
  209.                 BOOLEAN003 = 1
  210.                 Goto LABEL008
  211.             Endif
  212.             If (STRING005 == Chr(27)) Then
  213.                 BOOLEAN002 = 1
  214.                 BOOLEAN003 = 1
  215.                 Goto LABEL008
  216.             Endif
  217.             If (((((((((STRING005 == "0") || (STRING005 == "1")) || (STRING005 == "2")) || (STRING005 == "3")) || (STRING005 == "4")) || (STRING005 == "5")) || (STRING005 == "6")) || (STRING005 == "7")) || (STRING005 == "8")) Then
  218.                 If (S2I(STRING004 + STRING005, SBYTE003) - 9 > SBYTE001) Goto LABEL007
  219.                 PROC006(S2I(STRING004 + STRING005, SBYTE003) - 9)
  220.                 Cls
  221.                 PROC003()
  222.                 :LABEL007
  223.                 BOOLEAN003 = 1
  224.             Endif
  225.             :LABEL008
  226.             Goto LABEL006
  227.             :LABEL009
  228.             Goto LABEL010
  229.         Endif
  230.         If (SBYTE001 < 10) Then
  231.             PROC006(1)
  232.             Cls
  233.             PROC003()
  234.         Endif
  235.     Endif
  236.     :LABEL010
  237.     Goto LABEL004
  238.     :LABEL011
  239.     AnsiPos 1, 23
  240.     Newline
  241.  
  242.     EndProc
  243.  
  244.     RdUNet 
  245.     If (UN_Stat() == "!") Then
  246.         BOOLEAN004 = 0
  247.     Else
  248.         BOOLEAN004 = 1
  249.     Endif
  250.  
  251.     EndFunc
  252.  
  253.  
  254. ;------------------------------------------------------------------------------
  255.  
  256.     Procedure PROC006(SByte SBYTE007)
  257.  
  258.     String   STRING006
  259.     Boolean  BOOLEAN005
  260.  
  261.     Cls
  262.     FCreate 1, PPEPath() + PPEName() + "." + String(SBYTE007), 1, 0
  263.     FPutLn 1, PcbNode()
  264.     FPutLn 1, U_Name()
  265.     FClose 1
  266.     RdUNet SBYTE007
  267.     If ((U_RecNum(UN_Name()) == U_RecNum(U_Name())) || ((UN_Name() == "SYSOP") && (U_RecNum(U_Name()) == 1))) Then
  268.         PROC007("You cannot monitor your own node.")
  269.         Newline
  270.         Wait
  271.         Return
  272.     ElseIf ((UN_Stat() == "Z") || (UN_Stat() == "")) Then
  273.         PROC007("This node is either offline or nobody has logged into it yet and is")
  274.         PROC007("usually not an interesting thing to watch so I'm not going to let you.")
  275.         Newline
  276.         Wait
  277.         Return
  278.     ElseIf ((UN_Stat() == "!") && (UN_Oper() == ReadLine(TSTRING002(1), 1))) Then
  279.         PROC007("This node is monitoring someone right now and would not be interesting")
  280.         PROC007("to you. <grin>")
  281.         Newline
  282.         Wait
  283.         Return
  284.     Endif
  285.     For SBYTE003 = 1 To 15
  286.         Color SBYTE003
  287.         AnsiPos 1, 13
  288.         PROC007("Now Monitoring Node " + String(SBYTE007))
  289.         Delay 10
  290.     Next
  291.     Cls
  292.     :LABEL012
  293.     If (BOOLEAN005) Goto LABEL013
  294.     STRING006 = ""
  295.     STRING006 = Inkey()
  296.     If (STRING006 == Chr(27)) BOOLEAN005 = 1
  297.     If (Exist(PPEPath() + PPEName() + "1.V" + String(SBYTE007))) Then
  298.         DispFile PPEPath() + PPEName() + "1.V" + String(SBYTE007), 0
  299.         Delete PPEPath() + PPEName() + "1.V" + String(SBYTE007)
  300.     Endif
  301.     Goto LABEL012
  302.     :LABEL013
  303.     WrUNet SBYTE007, UN_Stat(), UN_Name(), UN_City(), UN_Oper(), ""
  304.  
  305.     EndProc
  306.  
  307.  
  308. ;------------------------------------------------------------------------------
  309.  
  310.     Procedure PROC007(String STRING007)
  311.  
  312.     SBYTE003 = (80 - Len(StripAtx(STRING007))) / 2 + 1
  313.     AnsiPos SBYTE003, GetY()
  314.     Print STRING007
  315.     Color 7
  316.  
  317.     EndProc
  318.  
  319.  
  320. ;------------------------------------------------------------------------------
  321.  
  322.     Function FUNCTION002(SByte SBYTE008) String
  323.  
  324.     String   STRING009
  325.  
  326.     Select Case (UN_Stat())
  327.         Case "A"
  328.             FUNCTION002 = ReadLine(TSTRING002(1), 2)
  329.         Case "!"
  330.             FUNCTION002 = UN_Oper()
  331.         Case "$"
  332.             FUNCTION002 = ReadLine(TSTRING002(1), 3)
  333.         Case "U"
  334.             FUNCTION002 = ReadLine(TSTRING002(1), 4)
  335.         Case "O"
  336.             FUNCTION002 = ReadLine(TSTRING002(1), 5)
  337.         Case "S"
  338.             FUNCTION002 = ReadLine(TSTRING002(1), 6)
  339.         Case "B"
  340.             FUNCTION002 = ReadLine(TSTRING002(1), 7)
  341.         Case "T"
  342.             STRING009 = Left(UN_Oper(), 3)
  343.             Select Case (STRING009)
  344.                 Case "(U)"
  345.                     FUNCTION002 = ReadLine(TSTRING002(1), 8)
  346.                 Case "(D)"
  347.                     FUNCTION002 = ReadLine(TSTRING002(1), 9)
  348.                 Case Else
  349.                     FUNCTION002 = ReadLine(TSTRING002(1), 10)
  350.             End Select
  351.         Case "D"
  352.             FUNCTION002 = ReadLine(TSTRING002(1), 11)
  353.         Case "C"
  354.             FUNCTION002 = ReadLine(TSTRING002(1), 12)
  355.         Case "G"
  356.             FUNCTION002 = ReadLine(TSTRING002(1), 13)
  357.         Case "M"
  358.             FUNCTION002 = ReadLine(TSTRING002(1), 14)
  359.         Case "E"
  360.             FUNCTION002 = ReadLine(TSTRING002(1), 15)
  361.         Case "P"
  362.             FUNCTION002 = ReadLine(TSTRING002(1), 16)
  363.         Case "W"
  364.             FUNCTION002 = ReadLine(TSTRING002(1), 17)
  365.         Case "R"
  366.             FUNCTION002 = ReadLine(TSTRING002(1), 18)
  367.         Case "L"
  368.             FUNCTION002 = ReadLine(TSTRING002(1), 19)
  369.         Case "X"
  370.             FUNCTION002 = ReadLine(TSTRING002(1), 20)
  371.         Case "F"
  372.             FUNCTION002 = ReadLine(TSTRING002(1), 21)
  373.         Case "N"
  374.             FUNCTION002 = ReadLine(TSTRING002(1), 22)
  375.         Case "Z"
  376.             FUNCTION002 = ReadLine(TSTRING002(1), 23)
  377.         Case Else
  378.             FUNCTION002 = ReadLine(TSTRING002(1), 24)
  379.     End Select
  380.  
  381.     EndFunc
  382.  
  383.  
  384. ;------------------------------------------------------------------------------
  385. ;
  386. ; Usage report (before postprocessing)
  387. ;
  388. ; ■ Statements used :
  389. ;
  390. ;    3       End
  391. ;    8       Cls
  392. ;    3       Wait
  393. ;    2       Color 
  394. ;    96      Goto 
  395. ;    65      Let 
  396. ;    7       Print 
  397. ;    9       PrintLn 
  398. ;    58      If 
  399. ;    1       DispFile 
  400. ;    1       FCreate 
  401. ;    1       FClose 
  402. ;    2       FPutLn 
  403. ;    1       StartDisp 
  404. ;    1       Delete 
  405. ;    3       Return
  406. ;    1       Delay 
  407. ;    2       Inc 
  408. ;    10      Newline
  409. ;    7       RdUNet 
  410. ;    3       WrUNet 
  411. ;    8       AnsiPos 
  412. ;    7       EndProc
  413. ;    2       EndFunc
  414. ;
  415. ;
  416. ; ■ Functions used :
  417. ;
  418. ;    1       /
  419. ;    38      +
  420. ;    6       -
  421. ;    69      ==
  422. ;    6       <
  423. ;    4       <=
  424. ;    4       >
  425. ;    8       >=
  426. ;    61      !
  427. ;    16      &&
  428. ;    22      ||
  429. ;    4       Len(
  430. ;    6       Mid()
  431. ;    1       Left()
  432. ;    4       Space()
  433. ;    6       Chr()
  434. ;    6       Time()
  435. ;    3       U_Name()
  436. ;    6       TimeAp()
  437. ;    1       StripAtx()
  438. ;    3       Inkey()
  439. ;    13      String()
  440. ;    6       PPEPath()
  441. ;    5       PcbNode()
  442. ;    27      ReadLine()
  443. ;    32      UN_Stat()
  444. ;    9       UN_Name()
  445. ;    3       UN_City()
  446. ;    5       UN_Oper()
  447. ;    2       Exist()
  448. ;    4       S2I()
  449. ;    1       GetY()
  450. ;    6       PPEName()
  451. ;    2       MaxNode()
  452. ;    3       U_RecNum()
  453. ;    1       Mixed()
  454. ;
  455. ;------------------------------------------------------------------------------
  456. ;
  457. ; Analysis flags : No flag
  458. ;
  459. ;------------------------------------------------------------------------------
  460. ;
  461. ; Postprocessing report
  462. ;
  463. ;    4       For/Next
  464. ;    0       While/EndWhile
  465. ;    17      If/Then or If/Then/Else
  466. ;    2       Select Case
  467. ;
  468. ;------------------------------------------------------------------------------
  469. ;                 AEGiS Corp - Break the routines, code against the machines!
  470. ;------------------------------------------------------------------------------
  471.