home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / BBS / CNAV_401.ZIP / CNAV.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-10-20  |  37KB  |  1,770 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.     Integer  INTEGER001
  25.     Integer  INTEGER002
  26.     Integer  INTEGER003
  27.     Integer  INTEGER004
  28.     Integer  INTEGER005
  29.     Integer  INTEGER006
  30.     Integer  INTEGER007
  31.     Integer  INTEGER008
  32.     Integer  INTEGER009
  33.     Integer  INTEGER010
  34.     Integer  INTEGER011
  35.     Integer  INTEGER012
  36.     Integer  INTEGER013
  37.     Integer  INTEGER014
  38.     Integer  INTEGER017
  39.     String   STRING001
  40.     String   STRING002
  41.     String   STRING003
  42.     String   STRING004
  43.     String   STRING005
  44.     String   STRING006
  45.     String   STRING007
  46.     String   STRING008
  47.     String   STRING009
  48.     String   STRING010
  49.     String   STRING011
  50.     String   STRING012
  51.     String   STRING013
  52.     String   STRING014
  53.     String   STRING015
  54.     String   STRING016
  55.     String   STRING017
  56.     String   TSTRING018(18)
  57.     String   STRING019
  58.     String   TSTRING020(20)
  59.     String   STRING021
  60.     String   TSTRING022(2)
  61.     String   STRING023
  62.     String   STRING024
  63.     String   STRING025
  64.     String   STRING026
  65.     String   STRING027
  66.     String   STRING028
  67.     String   STRING029
  68.     String   STRING030
  69.     String   STRING031
  70.     String   STRING032
  71.     String   STRING033
  72.     String   STRING034
  73.     String   STRING035
  74.     String   STRING036
  75.     String   STRING037
  76.     String   STRING038
  77.     String   STRING039
  78.     String   STRING040
  79.     String   STRING041
  80.     String   STRING042
  81.     String   STRING043
  82.     String   STRING044
  83.     String   STRING045
  84.     String   STRING046
  85.     String   STRING047
  86.     String   STRING048
  87.     String   STRING049
  88.     String   STRING050
  89.     String   STRING051
  90.     String   STRING052
  91.     String   TSTRING053(30)
  92.     String   STRING054
  93.     String   STRING055
  94.     String   STRING056
  95.     String   STRING057
  96.     String   STRING058
  97.     String   STRING059
  98.     String   TSTRING060(18)
  99.     String   STRING061
  100.     String   STRING062
  101.     String   TSTRING063(200)
  102.     String   STRING064
  103.     String   STRING065
  104.     String   STRING066
  105.     String   STRING067
  106.     String   STRING068
  107.     String   STRING069
  108.     String   STRING070
  109.     String   STRING071
  110.     String   STRING072
  111.     String   STRING073
  112.     String   STRING074
  113.     String   STRING075
  114.     String   STRING076
  115.     String   STRING077
  116.     String   STRING078
  117.     String   STRING079
  118.     String   STRING080
  119.     String   STRING081
  120.     String   STRING082
  121.     String   STRING085
  122.     String   STRING086
  123.     String   STRING087
  124.     String   STRING088
  125.     String   STRING089
  126.     Time     TIME001
  127.     BigStr   TBIGSTR001(2)
  128.     BigStr   BIGSTR002
  129.     Declare  Function FUNCTION001(Integer INTEGER015, Integer INTEGER016) Boolean
  130.     Declare  Function FUNCTION002() Boolean
  131.     Declare  Procedure PROC001()
  132.     Declare  Procedure PROC002()
  133.     Declare  Procedure PROC003()
  134.     Declare  Procedure PROC004()
  135.     Declare  Procedure PROC005()
  136.     Declare  Procedure PROC006()
  137.     Declare  Procedure PROC007()
  138.     Declare  Procedure PROC008()
  139.     Declare  Procedure PROC009()
  140.     Declare  Procedure PROC010()
  141.     Declare  Procedure PROC011()
  142.     Declare  Procedure PROC012()
  143.     Declare  Procedure PROC013()
  144.     Declare  Procedure PROC014()
  145.     Declare  Procedure PROC015()
  146.     Declare  Procedure PROC016()
  147.     Declare  Procedure PROC017(String STRING083)
  148.     Declare  Procedure PROC018()
  149.     Declare  Procedure PROC019()
  150.     Declare  Procedure PROC020(String STRING084)
  151.     Declare  Procedure PROC021()
  152.     Declare  Procedure PROC022()
  153.     Declare  Procedure PROC023()
  154.  
  155. ;------------------------------------------------------------------------------
  156.  
  157.     STRING002 = Chr(67) + Chr(78) + Chr(65) + Chr(86)
  158.     STRING003 = Chr(118) + Chr(52) + Chr(46) + Chr(48) + Chr(49)
  159.     STRING001 = Chr(67) + Chr(117) + Chr(115) + Chr(116) + Chr(111) + Chr(109) + Space(1) + Chr(78) + Chr(111) + Chr(100) + Chr(101) + Space(1) + Chr(65) + Chr(99) + Chr(116) + Chr(105) + Chr(118) + Chr(105) + Chr(116) + Chr(121) + Space(1) + Chr(86) + Chr(105) + Chr(101) + Chr(119) + Chr(101) + Chr(114) + Space(1) + Chr(80) + Chr(80) + Chr(69)
  160.     STRING004 = PPEPath() + STRING002 + "." + "O" + "P" + "T"
  161.     STRING005 = PPEPath() + STRING002 + "." + "E" + "X" + "C"
  162.     STRING006 = PPEPath() + STRING002 + "." + "C" + "O" + "L"
  163.     STRING007 = PPEPath() + STRING002 + "." + "D" + "A" + "T"
  164.     STRING008 = PPEPath() + STRING002 + "." + "A" + "C" + "T"
  165.     STRING009 = PPEPath() + STRING002 + "." + "H" + "L" + "P"
  166.     STRING010 = PPEPath() + STRING002 + "." + "S" + "T" + "A"
  167.     STRING011 = PPEPath() + STRING002 + "_" + "A" + "E" + "X" + "."
  168.     If (!Exist(STRING007)) PROC008()
  169.     STRING074 = 1
  170.     STRING037 = 0
  171.     BOOLEAN003 = 0
  172.     INTEGER008 = 255
  173.     INTEGER007 = 0
  174.     INTEGER009 = 0
  175.     STRING030 = 0
  176.     STRING027 = 0
  177.     STRING067 = 0
  178.     BOOLEAN001 = 1
  179.     BOOLEAN002 = 1
  180.     RdUNet PcbNode()
  181.     STRING065 = UN_Stat()
  182.     WrUNet PcbNode(), "D", UN_Name(), UN_City(), UN_Name() + " - " + STRING002, ""
  183.     INTEGER011 = ReadLine(STRING007, 1)
  184.     FClose -1
  185.     STRING015 = ReadLine("PCBOARD.DAT", 29)
  186.     FClose -1
  187.     PROC004()
  188.     PROC007()
  189.     If (Exist(STRING008)) PROC003()
  190.     If (Exist(STRING006)) PROC005()
  191.     If (Exist(STRING004)) PROC006()
  192.     If (Exist(STRING005)) PROC012()
  193.     STRING021 = LTrim(STRING021 + " ", " ") + TokenStr()
  194.     :LABEL001
  195.     PROC002()
  196.     Tokenize STRING021
  197.     GetToken TSTRING022(1)
  198.     GetToken TSTRING022(2)
  199.     INTEGER010 = 4
  200.     If (TSTRING022(1) <> "") Then
  201.         PROC017(TSTRING022(1))
  202.     Else
  203.         PROC020("/DEF=V")
  204.     Endif
  205.     If (INTEGER001 == 1) Then
  206.         INTEGER001 = ""
  207.         Goto LABEL001
  208.     Endif
  209.     Select Case (INTEGER010)
  210.         Case 1
  211.             STRING046 = "T" + "i" + "n" + "y"
  212.         Case 3
  213.             STRING046 = "B" + "r" + "i" + "e" + "f"
  214.         Case 5
  215.             STRING046 = "(" + String(Time()) + ") A" + "c" + "t" + "i" + "v" + "e"
  216.             StartDisp 1
  217.         Case Else
  218.             STRING046 = "V" + "e" + "r" + "b" + "o" + "s" + "e"
  219.     End Select
  220.     Log "" + STRING002 + " " + STRING003 + " [" + STRING046 + " " + "View" + "]", 0
  221.     :LABEL002
  222.     If ((INTEGER010 == 4) || (INTEGER010 == 5)) Then
  223.         Cls
  224.     Else
  225.         Newline
  226.     Endif
  227.     STRING066 = STRING074
  228.     For INTEGER003 = 1 To INTEGER011
  229.         RdUNet INTEGER003
  230.         If (Abort()) Then
  231.             If (INTEGER010 == 5) Then
  232.                 ResetDisp
  233.                 Goto LABEL002
  234.                 Goto LABEL003
  235.             Endif
  236.             End
  237.         Endif
  238.         :LABEL003
  239.         PROC014()
  240.         If (STRING028 == STRING074) Continue
  241.         If ((STRING059 == STRING074) && ((INTEGER010 == 3) || (INTEGER010 == 4))) Then
  242.             STRING049 = ReadLine(STRING007, String(INTEGER003) + 1)
  243.             FClose -1
  244.             PROC001()
  245.             STRING070 = STRING054 + "PCBOARD" + ".S" + "Y" + "S"
  246.             PROC018()
  247.             If (U_RecNum(UN_Name()) <> -1) Then
  248.                 If (BOOLEAN003) Goto LABEL004
  249.                 FOpen 6, STRING015, 0, 0
  250.                 FSeek 6, (U_RecNum(UN_Name()) - 1) * 400 + 107, 0
  251.                 FRead 6, STRING079, 1
  252.                 FClose 6
  253.                 STRING079 = Right(Asc(STRING079), 3)
  254.                 Goto LABEL005
  255.                 :LABEL004
  256.                 GetAltUser U_RecNum(UN_Name())
  257.                 STRING079 = Right(String(U_Sec), 3)
  258.             Endif
  259.             :LABEL005
  260.         Else
  261.             STRING051 = "[Time]"
  262.             STRING050 = "Connect: [Speed/Port]"
  263.         Endif
  264.         STRING067 = 1
  265.         Select Case (INTEGER010)
  266.             Case 1
  267.                 If (STRING066 == STRING074) Then
  268.                     Print TSTRING020(20) + "═"
  269.                     Gosub LABEL007
  270.                     PrintLn "═" + TSTRING020(0)
  271.                     STRING066 = STRING037
  272.                 Endif
  273.                 PrintLn TSTRING020(20) + "- " + TSTRING020(1) + Left("Node #", 7 - Len(String(INTEGER003))) + String(INTEGER003) + TSTRING020(20) + " - " + TSTRING020(3) + STRING076 + Space(25 - Len(STRING076)) + TSTRING020(20) + "- " + TSTRING020(5) + STRING078 + Space(38 - Len(StripAtx(STRING078))) + TSTRING020(20) + " -" + TSTRING020(0)
  274.             Case 3
  275.                 If (STRING066 == STRING074) Then
  276.                     Gosub LABEL008
  277.                     STRING066 = STRING037
  278.                 Else
  279.                     Gosub LABEL006
  280.                 Endif
  281.                 Gosub LABEL010
  282.             Case 5
  283.                 If (STRING066 == STRING074) Then
  284.                     Gosub LABEL008
  285.                     STRING066 = STRING037
  286.                 Else
  287.                     If (INTEGER011 <= 9) Gosub LABEL006
  288.                 Endif
  289.                 TSTRING060(INTEGER003) = GetY()
  290.                 PrintLn TSTRING020(20) + "│ " + TSTRING020(1) + Left("Node #", 7 - Len(String(INTEGER003))) + String(INTEGER003) + TSTRING020(20) + " │ " + TSTRING020(3) + STRING076 + Space(25 - Len(STRING076)) + TSTRING020(20) + "│ " + TSTRING020(5) + STRING078 + Space(38 - Len(StripAtx(STRING078))) + TSTRING020(20) + " │" + TSTRING020(0)
  291.             Case Else
  292.                 Gosub LABEL008
  293.                 Gosub LABEL010
  294.                 Gosub LABEL009
  295.         End Select
  296.         If ((INTEGER010 == 4) && (STRING027 == STRING074)) Then
  297.             STRING030 = STRING037
  298.             Gosub LABEL012
  299.         Endif
  300.         If ((INTEGER010 == 4) && (STRING030 == STRING074)) Gosub LABEL016
  301.     Next
  302.     Select Case (INTEGER010)
  303.         Case 3
  304.             If (STRING067 == STRING037) Then
  305.                 Gosub LABEL008
  306.                 Gosub LABEL011
  307.             Endif
  308.             Gosub LABEL009
  309.             PrintLn TSTRING020(20) + "                                                └ " + "[" + "M" + "S" + "] " + STRING002 + " " + STRING003 + " / " + STRING024 + " ┘ " + TSTRING020(0)
  310.         Case 1
  311.             If (STRING067 == STRING037) Then
  312.                 Print TSTRING020(20) + "═"
  313.                 Gosub LABEL007
  314.                 PrintLn "═" + TSTRING020(0)
  315.                 PrintLn TSTRING020(20) + "-" + TSTRING020(1) + " Node ?" + TSTRING020(20) + " - " + TSTRING020(3) + "<User Name>               " + TSTRING020(20) + "- " + TSTRING020(5) + "No Users Found to Display! - Aborting!" + TSTRING020(20) + " -" + TSTRING020(0)
  316.             Endif
  317.             Print TSTRING020(20) + "═"
  318.             Gosub LABEL007
  319.             PrintLn "═" + TSTRING020(0)
  320.             PrintLn TSTRING020(20) + "                                                └ " + "[" + "M" + "S" + "] " + STRING002 + " " + STRING003 + " / " + STRING024 + " ┘ " + TSTRING020(0)
  321.         Case 5
  322.             If (STRING067 == STRING037) Then
  323.                 Gosub LABEL008
  324.                 Gosub LABEL011
  325.             Endif
  326.             Gosub LABEL009
  327.             If (STRING067 == STRING037) Then
  328.                 Newline
  329.                 End
  330.             Endif
  331.             Goto LABEL025
  332.         Case Else
  333.             If (STRING067 == STRING037) Then
  334.                 Gosub LABEL008
  335.                 Gosub LABEL011
  336.                 Gosub LABEL009
  337.             Endif
  338.             Print TSTRING020(20) + "╒"
  339.             Gosub LABEL007
  340.             PrintLn "╕" + TSTRING020(0)
  341.             PrintLn TSTRING020(20) + "└─ " + "[" + "M" + "S" + "] " + STRING002 + " " + STRING003 + ": " + STRING001 + " ───────────────[" + STRING024 + "]─┘" + TSTRING020(0)
  342.     End Select
  343.     DefColor
  344.     PROC022()
  345.     End
  346.     STRING081 = "If you have suggestions or requests for permanent or optional features,"
  347.     STRING082 = "please send mail to <mslasher@io.org>.  - Rob Hunter / CNAV (c)1993-94 "
  348.     :LABEL006
  349.     PrintLn TSTRING020(20) + "├─────────┼──────────────────────────┼────────────────────────────────────────┤" + TSTRING020(0)
  350.     Return
  351.     :LABEL007
  352.     Print "═════════════════════════════════════════════════════════════════════════════"
  353.     Return
  354.     :LABEL008
  355.     PrintLn TSTRING020(20) + "╒═════════╤══════════════════════════╤════════════════════════════════════════╕" + TSTRING020(0)
  356.     Return
  357.     :LABEL009
  358.     PrintLn TSTRING020(20) + "╘═════════╧══════════════════════════╧════════════════════════════════════════╛" + TSTRING020(0)
  359.     Return
  360.     :LABEL010
  361.     PrintLn TSTRING020(20) + "│ " + TSTRING020(1) + Left("NODE #", 7 - Len(String(INTEGER003))) + String(INTEGER003) + TSTRING020(20) + " │ " + TSTRING020(3) + STRING076 + Space(25 - Len(STRING076)) + TSTRING020(20) + "│ " + TSTRING020(5) + STRING078 + Space(38 - Len(StripAtx(STRING078))) + TSTRING020(20) + " │" + TSTRING020(0)
  362.     PrintLn TSTRING020(20) + "│" + TSTRING020(2) + " SL: " + STRING079 + TSTRING020(20) + " │ " + TSTRING020(4) + Left(STRING077, 25) + TSTRING020(20) + "│ " + TSTRING020(6) + "Login: " + STRING051 + Space(31 - Len(STRING050 + STRING051)) + STRING050 + TSTRING020(20) + " │" + TSTRING020(0)
  363.     Return
  364.     :LABEL011
  365.     PrintLn TSTRING020(20) + "│" + TSTRING020(1) + " NODE ?" + TSTRING020(20) + " │ " + TSTRING020(3) + "<User Name>               " + TSTRING020(20) + "│ " + TSTRING020(5) + "No Users Found to Display! - Aborting!" + TSTRING020(20) + " │" + TSTRING020(0)
  366.     Return
  367.     :LABEL012
  368.     TBIGSTR001(1) = ""
  369.     TBIGSTR001(2) = ""
  370.     STRING019 = STRING002 + "T" + "E" + "M" + "P." + String(INTEGER003)
  371.     STRING032 = ReadLine(STRING007, String(INTEGER003) + 1)
  372.     FClose -1
  373.     INTEGER006 = 0
  374.     If (FUNCTION002()) PROC022()
  375.     If (!Exist(STRING032) || (FileInf(STRING032, 4) == 0)) Goto LABEL016
  376.     Copy STRING032, STRING019
  377.     STRING031 = STRING074
  378.     FOpen 1, STRING019, 0, 0
  379.     :LABEL013
  380.     If (Ferr(1)) Goto LABEL015
  381.     FGet 1, STRING048
  382.     If (Left(STRING048, 1) == " ") Goto LABEL014
  383.     STRING061 = Left(STRING048, 1)
  384.     Select Case (Upper(STRING061))
  385.         Case "E"
  386.             STRING072 = TSTRING020(11) + "Error!"
  387.         Case "V"
  388.             STRING072 = TSTRING020(11) + "Verify"
  389.         Case Lower(STRING061)
  390.             STRING072 = TSTRING020(10) + "DNLoad"
  391.         Case Upper(STRING061)
  392.             STRING072 = TSTRING020(9) + "UPLoad"
  393.         Case Else
  394.             STRING072 = STRING071
  395.     End Select
  396.     STRING048 = LTrim(Right(STRING048, Len(STRING048) - 1), " ")
  397.     STRING039 = Left(STRING048, InStr(STRING048, " ") - 1)
  398.     STRING039 = STRING039 / 1024
  399.     If (STRING039 > 999) STRING039 = Left(STRING039, Len(STRING039) - 3) + "," + Right(STRING039, 3)
  400.     STRING048 = LTrim(Right(STRING048, Len(STRING048) - InStr(Upper(STRING048), "ERRORS") + 5), " ")
  401.     STRING048 = LTrim(Right(STRING048, Len(STRING048) - InStr(STRING048, " ") - 1), " ")
  402.     STRING048 = LTrim(Right(STRING048, Len(STRING048) - InStr(STRING048, " ") - 1), " ")
  403.     STRING038 = Upper(Left(STRING048, InStr(STRING048, " ") - 1))
  404.     While ((InStr(STRING038, "/") <> 0) || (InStr(STRING038, "\") <> 0)) Do
  405.         STRING038 = Right(STRING038, Len(STRING038) - InStr(STRING038, "/"))
  406.         STRING038 = Right(STRING038, Len(STRING038) - InStr(STRING038, "\"))
  407.     EndWhile
  408.     If (INTEGER006 <= 150) Then
  409.         TBIGSTR001(1) = TBIGSTR001(1) + STRING038
  410.     Else
  411.         TBIGSTR001(2) = TBIGSTR001(2) + STRING038
  412.     Endif
  413.     Inc INTEGER006
  414.     Forward 37
  415.     PrintLn TSTRING020(20) + "▐│" + Space(3 - Len(INTEGER002)) + "[" + TSTRING020(14) + String(INTEGER002) + TSTRING020(20) + "] [" + STRING072 + TSTRING020(20) + "] " + TSTRING020(7) + RTrim(Left(STRING038, 12), " ") + " " + Left(TSTRING020(20) + "··························", 24 - Len(STRING038) + Len(STRING039) + 1) + " " + TSTRING020(8) + STRING039 + "k " + TSTRING020(20) + "│▌"
  416.     Inc INTEGER002
  417.     If (Abort()) Then
  418.         FClose 1
  419.         Delete STRING019
  420.         ResetDisp
  421.         If (INTEGER010 == 5) Then
  422.             Goto LABEL002
  423.             Goto LABEL014
  424.         Endif
  425.         End
  426.     Endif
  427.     :LABEL014
  428.     Goto LABEL013
  429.     :LABEL015
  430.     FClose 1
  431.     Delete STRING019
  432.     :LABEL016
  433.     If ((INTEGER010 == 5) && (Right(TSTRING018(STRING016), 1) == 2)) Goto LABEL021
  434.     If (FUNCTION001(6, 2)) Then
  435.         PROC022()
  436.         Goto LABEL017
  437.     Endif
  438.     :LABEL017
  439.     If (STRING030 == 2) Goto LABEL021
  440.     STRING049 = ReadLine(STRING007, String(INTEGER003) + 1)
  441.     FClose -1
  442.     PROC001()
  443.     STRING041 = STRING054 + "F" + "L" + "I" + "S" + "T." + String(INTEGER003)
  444.     If (Exist(STRING041)) Then
  445.         Forward 37
  446.         Print TSTRING020(20) + "▐│" + Space(3 - Len(INTEGER002)) + "[" + TSTRING020(14) + String(INTEGER002) + TSTRING020(20) + "] [" + TSTRING020(13) + "*HOLD*" + TSTRING020(20) + "] " + TSTRING020(7) + "Loading Queue ...      " + TSTRING020(20) + "│▌"
  447.         Backup 80
  448.         STRING031 = STRING074
  449.         FOpen 3, STRING041, 0, 0
  450.         STRING042 = "."
  451.         STRING073 = STRING074
  452.         INTEGER012 = 1
  453.         While (STRING042 <> "") Do
  454.             FRead 3, STRING042, 66
  455.             FRead 3, TSTRING063(INTEGER012), 63
  456.             If (STRING042 == "") Continue
  457.             If (INTEGER006 == 0) Then
  458.                 TSTRING063(INTEGER012) = TSTRING020(12) + "Queue!" + TSTRING020(20) + "] " + TSTRING020(7) + TSTRING063(INTEGER012)
  459.                 Goto LABEL019
  460.             Endif
  461.             If (INTEGER006 <= 150) Then
  462.                 If (InStr(TBIGSTR001(1), TSTRING063(INTEGER012)) <> 0) Continue
  463.                 Goto LABEL018
  464.             Endif
  465.             If (InStr(TBIGSTR001(1), TSTRING063(INTEGER012)) <> 0) Continue
  466.             If (InStr(TBIGSTR001(2), TSTRING063(INTEGER012)) <> 0) Continue
  467.             :LABEL018
  468.             If (STRING073 == STRING074) Then
  469.                 TSTRING063(INTEGER012) = TSTRING020(13) + "*Send*" + TSTRING020(20) + "] " + TSTRING020(7) + TSTRING063(INTEGER012)
  470.                 STRING073 = STRING037
  471.                 Goto LABEL019
  472.             Endif
  473.             TSTRING063(INTEGER012) = TSTRING020(12) + "Queue!" + TSTRING020(20) + "] " + TSTRING020(7) + TSTRING063(INTEGER012)
  474.             :LABEL019
  475.             STRING042 = RTrim(STRING042, " ")
  476.             If (Exist(STRING042)) Then
  477.                 STRING064 = FileInf(STRING042, 4) / 1024
  478.                 If (STRING064 > 999) STRING064 = Left(STRING064, Len(STRING064) - 3) + "," + Right(STRING064, 3)
  479.                 Goto LABEL020
  480.             Endif
  481.             STRING064 = "?"
  482.             :LABEL020
  483.             TSTRING063(INTEGER012) = TSTRING063(INTEGER012) + " " + Left(TSTRING020(20) + "··························", 32 - Len(StripAtx(TSTRING063(INTEGER012))) + Len(STRING064) + 1) + " " + TSTRING020(8) + STRING064 + "k "
  484.             Inc INTEGER012
  485.             If (Abort()) Then
  486.                 FClose 3
  487.                 ResetDisp
  488.                 If (INTEGER010 == 5) Then
  489.                     Goto LABEL002
  490.                     Continue
  491.                 Endif
  492.                 End
  493.             Endif
  494.         EndWhile
  495.         FClose 3
  496.         INTEGER013 = INTEGER012
  497.         For INTEGER012 = 1 To INTEGER013 - 1
  498.             Forward 37
  499.             PrintLn TSTRING020(20) + "▐│" + Space(3 - Len(INTEGER002)) + "[" + TSTRING020(14) + String(INTEGER002) + TSTRING020(20) + "] [" + TSTRING063(INTEGER012) + TSTRING020(20) + "│▌"
  500.             Inc INTEGER002
  501.         Next
  502.     Endif
  503.     :LABEL021
  504.     STRING030 = STRING037
  505.     TSTRING018(INTEGER003) = Left(TSTRING018(INTEGER003), 6) + STRING037
  506.     If (STRING031 == STRING074) Gosub LABEL030
  507.     Return
  508.     End
  509.  
  510. ;------------------------------------------------------------------------------
  511.  
  512.     Procedure PROC014()
  513.  
  514.     If (INTEGER010 <> 1) Then
  515.         INTEGER002 = 1
  516.         STRING079 = "000"
  517.         STRING031 = STRING037
  518.         STRING027 = STRING037
  519.         STRING030 = STRING037
  520.         STRING059 = STRING074
  521.         STRING077 = Strip(UN_City(), "@")
  522.     Endif
  523.     STRING028 = STRING037
  524.     STRING076 = Mixed(UN_Name())
  525.     If (INTEGER010 == 5) Then
  526.         TSTRING018(INTEGER003) = UN_Stat() + "," + STRING074 + "," + STRING037 + "," + STRING037
  527.         If (UN_Stat() == "") Then
  528.             TSTRING018(INTEGER003) = "Z" + "," + STRING037 + "," + STRING037 + "," + STRING037
  529.             Goto LABEL022
  530.         Endif
  531.         If (UN_Stat() == " ") Then
  532.             TSTRING018(INTEGER003) = "Y" + "," + STRING037 + "," + STRING037 + "," + STRING037
  533.         Endif
  534.     Endif
  535.     :LABEL022
  536.     If (Exist(STRING011 + String(INTEGER003))) Then
  537.         STRING012 = ReadLine(STRING011 + String(INTEGER003), 1)
  538.         FClose -1
  539.         If ((STRING012 == Upper(STRING076)) && (STRING012 <> "")) Then
  540.             PROC021()
  541.  
  542.             EndProc
  543.  
  544.             Goto LABEL023
  545.         Endif
  546.         Delete STRING011 + String(INTEGER003)
  547.     Endif
  548.     :LABEL023
  549.     If (InStr(BIGSTR002, "■" + String(UN_Name()) + "■") <> 0) Then
  550.         PROC021()
  551.  
  552.         EndProc
  553.  
  554.     Endif
  555.     STRING056 = Upper(UN_Stat())
  556.     If (INTEGER003 == PcbNode()) Then
  557.         STRING078 = TSTRING053(0)
  558.  
  559.         EndProc
  560.  
  561.     Endif
  562.     Select Case (STRING056)
  563.         Case "A"
  564.             STRING078 = TSTRING053(1)
  565.         Case "Y", " "
  566.             STRING076 = "<Open Node>"
  567.             If ((INTEGER010 == 3) || (INTEGER010 == 4)) Then
  568.                 PROC009()
  569.                 STRING077 = "IDLE " + STRING013 + " MINS " + Left("----", 10 - Len(STRING013) + Len(STRING044)) + " (" + STRING044 + ")"
  570.             Endif
  571.             STRING078 = ReadLine(STRING007, INTEGER011 + 1 + INTEGER003)
  572.             FClose -1
  573.             If (Len(StripAtx(STRING078)) > 38) Then
  574.                 STRING078 = TSTRING053(16)
  575.             ElseIf ((((StripAtx(STRING078) == "") || (StripAtx(STRING078) == Space(38))) || (StripAtx(Upper(STRING078)) == "NONE")) || (Upper(STRING078) == "N")) Then
  576.                 STRING078 = TSTRING053(16)
  577.             Endif
  578.             STRING059 = STRING037
  579.             TSTRING018(INTEGER003) = "Y," + STRING037 + "," + STRING037 + "," + STRING037
  580.             If (BOOLEAN002 == STRING037) Then
  581.                 STRING028 = STRING074
  582.                 TSTRING018(INTEGER003) = "/Y"
  583.             Endif
  584.         Case "T"
  585.             STRING078 = TSTRING053(20)
  586.             Select Case (Left(UN_Oper(), 3))
  587.                 Case "(U)"
  588.                     If ((Left(UN_Oper(), 15) == "(U) ... (Z) ...") || (Left(UN_Oper(), 16) == "(U) ... (ZM) ...")) Then
  589.                         STRING071 = TSTRING020(9) + "UPLoad"
  590.                         STRING030 = 2
  591.                         STRING027 = STRING074
  592.                         TSTRING018(INTEGER003) = Left(UN_Stat(), 1) + "," + STRING074 + "," + STRING074 + "," + String(2)
  593.                         STRING078 = TSTRING053(21)
  594.                     ElseIf (Left(UN_Oper(), 15) == "(U) ... (H) ...") Then
  595.                         STRING078 = TSTRING053(23)
  596.                         STRING027 = STRING074
  597.                         STRING030 = 2
  598.                         TSTRING018(INTEGER003) = Left(UN_Stat(), 1) + "," + STRING074 + "," + STRING074 + "," + String(2)
  599.                         STRING071 = TSTRING020(9) + "UPLoad"
  600.                     Else
  601.                         STRING078 = TSTRING053(25)
  602.                         TSTRING018(INTEGER003) = Left(UN_Stat(), 1) + "," + STRING074 + "," + STRING037 + "," + String(2)
  603.                     Endif
  604.                 Case "(D)"
  605.                     STRING057 = LTrim(LTrim(LTrim(LTrim(UN_Oper(), "("), "D"), ")"), " ")
  606.                     STRING040 = Left(STRING057, InStr(STRING057, " ") - 1)
  607.                     STRING058 = Right(UN_Oper(), Len(UN_Oper()) - Len(STRING040) + 5)
  608.                     If (Left(STRING058, 3) == "(H)") Then
  609.                         STRING071 = TSTRING020(10) + "DNLoad"
  610.                         STRING027 = STRING074
  611.                         STRING078 = TSTRING053(24)
  612.                         STRING030 = STRING074
  613.                         TSTRING018(INTEGER003) = Left(UN_Stat(), 1) + "," + STRING074 + "," + STRING074 + "," + STRING074
  614.                         Goto LABEL024
  615.                     Endif
  616.                     If ((Left(STRING058, 3) == "(Z)") || (Left(STRING058, 4) == "(ZM)")) Then
  617.                         STRING078 = TSTRING053(22)
  618.                         STRING027 = STRING074
  619.                         STRING071 = TSTRING020(10) + "DNLoad"
  620.                         STRING030 = STRING074
  621.                         TSTRING018(INTEGER003) = Left(UN_Stat(), 1) + "," + STRING074 + "," + STRING074 + "," + STRING074
  622.                         Goto LABEL024
  623.                     Endif
  624.                     STRING078 = TSTRING053(26)
  625.                     STRING030 = STRING074
  626.                     TSTRING018(INTEGER003) = Left(UN_Stat(), 1) + "," + STRING074 + "," + STRING037 + "," + STRING074
  627.             End Select
  628.             :LABEL024
  629.         Case "D"
  630.             STRING029 = Right(String(UN_Oper()), Len(String(UN_Oper())) - Len(UN_Name()) + 3)
  631.             STRING078 = "Inside DOOR: " + STRING029
  632.             If (Upper(STRING029) == STRING002) STRING078 = TSTRING053(0)
  633.         Case "B"
  634.             STRING078 = TSTRING053(2)
  635.         Case "C"
  636.             STRING078 = TSTRING053(3)
  637.         Case "G"
  638.             STRING078 = TSTRING053(4)
  639.         Case "M"
  640.             STRING078 = TSTRING053(7)
  641.         Case "P"
  642.             STRING078 = TSTRING053(10)
  643.         Case "S"
  644.             STRING078 = TSTRING053(12)
  645.         Case "U", "Q"
  646.             STRING078 = TSTRING053(13)
  647.         Case "R"
  648.             STRING078 = TSTRING053(11)
  649.             STRING059 = STRING037
  650.             TSTRING018(INTEGER003) = Left(UN_Stat(), 1) + "," + STRING037 + "," + STRING037 + "," + STRING037
  651.         Case "L"
  652.             STRING078 = TSTRING053(6)
  653.             STRING059 = STRING037
  654.             TSTRING018(INTEGER003) = Left(UN_Stat(), 1) + "," + STRING037 + "," + STRING037 + "," + STRING037
  655.         Case "W"
  656.             STRING078 = TSTRING053(14)
  657.             STRING059 = STRING037
  658.             TSTRING018(INTEGER003) = Left(UN_Stat(), 1) + "," + STRING037 + "," + STRING037 + "," + STRING037
  659.         Case "X"
  660.             STRING078 = TSTRING053(15)
  661.             STRING059 = STRING037
  662.             TSTRING018(INTEGER003) = Left(UN_Stat(), 1) + "," + STRING037 + "," + STRING037 + "," + STRING037
  663.         Case "N"
  664.             STRING078 = TSTRING053(8)
  665.             STRING076 = "<Event Processing!>"
  666.             STRING077 = "UNAVAILABLE: SYSTEM DOWN"
  667.             STRING059 = STRING037
  668.             TSTRING018(INTEGER003) = Left(UN_Stat(), 1) + "," + STRING037 + "," + STRING037 + "," + STRING037
  669.         Case "O"
  670.             STRING078 = TSTRING053(9)
  671.             STRING076 = "<Login Process>"
  672.             STRING077 = "SYSTEM PERFORMING LOGIN!"
  673.             STRING059 = STRING037
  674.             TSTRING018(INTEGER003) = Left(UN_Stat(), 1) + "," + STRING037 + "," + STRING037 + "," + STRING037
  675.         Case "F"
  676.             STRING080 = LTrim(LTrim(LTrim(LTrim(UN_Oper(), "F"), " "), "V"), " ")
  677.             STRING078 = "Viewing File(s) [F V]: " + Left(STRING080, 12)
  678.         Case "E"
  679.             STRING034 = RTrim(LTrim(Left(UN_Oper(), InStr(UN_Oper(), " ") - 1), "("), ")")
  680.             STRING035 = Right(UN_Oper(), Len(UN_Oper()) - Len(STRING034) + 6)
  681.             If (Left(STRING035, 1) == "@") STRING035 = "MACRO"
  682.             STRING078 = "Enter Message to: " + STRING035
  683.         Case "H"
  684.             STRING078 = TSTRING053(5)
  685.             STRING059 = STRING037
  686.             TSTRING018(INTEGER003) = Left(UN_Stat(), 1) + "," + STRING037 + "," + STRING037 + "," + STRING037
  687.             STRING076 = "<Closed Node>"
  688.             STRING077 = "UNAVAILABLE: SYSTEM DOWN"
  689.             STRING059 = STRING037
  690.             STRING076 = "<Closed Node>"
  691.             STRING077 = "UNAVAILABLE: SYSTEM DOWN"
  692.             STRING078 = TSTRING053(17)
  693.             TSTRING018(INTEGER003) = Left(TSTRING018(INTEGER003), 1) + "," + STRING037 + "," + STRING037 + "," + STRING037
  694.             If (UN_Stat() == "") TSTRING018(INTEGER003) = "Z," + STRING037 + "," + STRING037 + "," + STRING037
  695.         Case STRING037
  696.             STRING028 = STRING074
  697.             TSTRING018(INTEGER003) = "/Z"
  698.     End Select
  699.  
  700.     EndProc
  701.  
  702.     :LABEL025
  703.     StartDisp 1
  704.     STRING069 = ""
  705.     STRING033 = STRING074
  706.     STRING016 = ""
  707.     PROC002()
  708.     AnsiPos 1, 22
  709.     Print TSTRING020(20) + "╒"
  710.     Gosub LABEL007
  711.     PrintLn "╕" + TSTRING020(0)
  712.     Print TSTRING020(20) + "└─ " + "[" + "M" + "S" + "] " + STRING002 + " " + STRING003 + ": " + STRING001 + " ───────────────[" + STRING024 + "]─┘" + TSTRING020(0)
  713.     AnsiPos 1, 21
  714.     Print STRING017
  715.     DefColor
  716.     KbdChkOn
  717.     While (STRING016 <> Chr(27)) Do
  718.         STRING016 = Inkey()
  719.         If (Abort()) ResetDisp
  720.         If (STRING016 == Chr(13)) Then
  721.             If (STRING069 == 1) Then
  722.                 Backup 1
  723.                 Print " "
  724.                 Backup 1
  725.                 STRING069 = ""
  726.                 STRING016 = 1
  727.                 Goto LABEL027
  728.                 Goto LABEL026
  729.             Endif
  730.             Break
  731.         Endif
  732.         :LABEL026
  733.         If ((STRING016 == 1) && (INTEGER011 >= 10)) Then
  734.             If (STRING069 <> 1) Then
  735.                 Print STRING016
  736.                 STRING069 = 1
  737.                 STRING016 = ""
  738.                 Continue
  739.             Endif
  740.         ElseIf ((STRING016 == Chr(8)) || (STRING016 == Chr(127))) Then
  741.             If (STRING069 == 1) Then
  742.                 Backup 1
  743.                 Print " "
  744.                 Backup 1
  745.                 STRING069 = ""
  746.             Endif
  747.         Endif
  748.         :LABEL027
  749.         If (((STRING016 <= INTEGER011) && (0 <= STRING016)) && (STRING016 <> "")) Then
  750.             If ((STRING069 == 1) && (InStr(Mask_Num(), STRING016) <> 0)) STRING016 = String(STRING069) + String(STRING016)
  751.             If (Left(Right(TSTRING018(STRING016), 5), 1) == STRING074) Then
  752.                 DefColor
  753.                 Print Upper(STRING016)
  754.                 INTEGER002 = 1
  755.                 STRING079 = "000"
  756.                 STRING031 = STRING037
  757.                 Cls
  758.                 INTEGER003 = Upper(STRING016)
  759.                 RdUNet INTEGER003
  760.                 GetAltUser U_RecNum(UN_Name())
  761.                 STRING049 = ReadLine(STRING007, String(STRING016) + 1)
  762.                 FClose -1
  763.                 PROC001()
  764.                 STRING070 = STRING054 + "PCBOARD.SYS"
  765.                 PROC018()
  766.                 If (Exist(STRING010)) Then
  767.                     FOpen 4, STRING010, 0, 0
  768.                     For INTEGER005 = 1 To 23
  769.                         FGet 4, STRING068
  770.                         If (STRING068 == "") Break
  771.                         If (Len(StripAtx(STRING068)) > 36) Continue
  772.                         If (InStr(STRING068, "%") <> 0) Then
  773.                             STRING068 = ReplaceStr(STRING068, "%SL", Right(U_Sec, 3))
  774.                             STRING068 = ReplaceStr(STRING068, "%MIX_USER_FULL_NAME_FIELD", Mixed(Left(U_Name(), 25)))
  775.                             STRING068 = ReplaceStr(STRING068, "%MIX_USERCITYSTATE_FIELD", Mixed(Left(U_City, 24)))
  776.                             STRING068 = ReplaceStr(STRING068, "%CAP_USER_FULL_NAME_FIELD", Upper(Left(U_Name(), 25)))
  777.                             STRING068 = ReplaceStr(STRING068, "%CAP_USERCITYSTATE_FIELD", Upper(Left(U_City, 24)))
  778.                             STRING068 = ReplaceStr(STRING068, "%CONNECT_STRING", Left(Right(STRING050, Len(STRING050) - 9), 15))
  779.                             STRING068 = ReplaceStr(STRING068, "%LAST_SC", Left(U_LDir(), 8))
  780.                             STRING068 = ReplaceStr(STRING068, "%LAST_DT", Left(U_LDate(), 8))
  781.                             STRING068 = ReplaceStr(STRING068, "%LTIM", Left(U_LTime(), 5))
  782.                             STRING068 = ReplaceStr(STRING068, "%TCAL", Left(U_Logons(), 5))
  783.                             STRING068 = ReplaceStr(STRING068, "%UPTF", Left(U_Ful(), 5))
  784.                             STRING068 = ReplaceStr(STRING068, "%UPT_BYTES", Left(U_Bul(), 10))
  785.                             STRING068 = ReplaceStr(STRING068, "%DNTF", Left(U_Fdl(), 5))
  786.                             STRING068 = ReplaceStr(STRING068, "%DNT_BYTES", Left(U_Bdl(), 10))
  787.                         Endif
  788.                         PrintLn STRING068
  789.                     Next
  790.                     FClose 4
  791.                     Goto LABEL028
  792.                 Endif
  793.                 PROC011()
  794.                 :LABEL028
  795.                 AnsiPos 1, 1
  796.                 If ((Left(Right(TSTRING018(STRING016), 3), 1) == STRING074) || (Right(TSTRING018(STRING016), 1) == STRING074)) Gosub LABEL029
  797.                 If (Left(Right(TSTRING018(STRING016), 3), 1) == STRING074) Gosub LABEL012
  798.                 If (Right(TSTRING018(STRING016), 1) == STRING074) Gosub LABEL016
  799.                 STRING030 = Right(TSTRING018(STRING016), 1)
  800.                 If (INTEGER002 <= 19) AnsiPos 1, 23
  801.                 Wait
  802.                 Goto LABEL002
  803.             Endif
  804.         Endif
  805.         For INTEGER005 = 1 To INTEGER011
  806.             RdUNet INTEGER005
  807.             Select Case (UN_Stat())
  808.                 Case ""
  809.                     STRING075 = "Z"
  810.                 Case " "
  811.                     STRING075 = "Y"
  812.                 Case Else
  813.                     STRING075 = UN_Stat()
  814.             End Select
  815.             If ((STRING075 <> Left(TSTRING018(INTEGER005), 1)) || (((STRING075 == "T") && (Left(TSTRING018(INTEGER005), 1) == "T")) && (((UN_Oper() == "") && ((Left(Right(TSTRING018(INTEGER005), 3), 1) == STRING074) || (Right(TSTRING018(INTEGER005), 1) == STRING074))) || ((UN_Oper() <> "") && ((Left(Right(TSTRING018(INTEGER005), 3), 1) == STRING037) && (Right(TSTRING018(INTEGER005), 1) == STRING037)))))) Then
  816.                 If (Left(TSTRING018(INTEGER005), 1) <> "/") Then
  817.                     AnsiPos 1, TSTRING060(INTEGER005)
  818.                     INTEGER003 = INTEGER005
  819.                     PROC014()
  820.                     If (Left(TSTRING018(INTEGER005), 1) <> "/") Then
  821.                         PrintLn TSTRING020(20) + "│ " + TSTRING020(1) + Left("Node #", 7 - Len(String(INTEGER003))) + String(INTEGER003) + TSTRING020(20) + " │ " + TSTRING020(3) + STRING076 + Space(25 - Len(STRING076)) + TSTRING020(20) + "│ " + TSTRING020(5) + STRING078 + Space(38 - Len(StripAtx(STRING078))) + TSTRING020(20) + " │" + TSTRING020(0)
  822.                     Endif
  823.                     AnsiPos 57 + STRING069, 21
  824.                     Continue
  825.                 Endif
  826.                 If (Left(TSTRING018(INTEGER005), 1) == "/") Then
  827.                     If ((InStr(Chr(0) + " YZ", Right(TSTRING018(INTEGER005), 1)) <> 0) && (Right(TSTRING018(INTEGER005), 1) <> STRING075)) Goto LABEL002
  828.                 Endif
  829.             Endif
  830.         Next
  831.     EndWhile
  832.     DefColor
  833.     Newlines 3
  834.     StartDisp 2
  835.     Log "" + STRING002 + " " + STRING003 + " [" + "(" + String(Time()) + ") A" + "c" + "t" + "i" + "v" + "e" + " " + "V" + "i" + "e" + "w" + "]", 0
  836.     PROC022()
  837.     :LABEL029
  838.     StartDisp 2
  839.     Forward 37
  840.     PrintLn TSTRING020(20) + "╒════════════════════════════════════════╕" + TSTRING020(0)
  841.     Forward 37
  842.     PrintLn TSTRING020(20) + "│" + TSTRING020(19) + "       File Transfer Information!       " + TSTRING020(20) + "│" + TSTRING020(0)
  843.     Forward 37
  844.     PrintLn TSTRING020(20) + "╘════════════════════════════════════════╛" + TSTRING020(0)
  845.     Return
  846.     :LABEL030
  847.     Forward 37
  848.     PrintLn TSTRING020(20) + " ╘══════════════════════════════════════╛ " + TSTRING020(0)
  849.     Return
  850.     End
  851.  
  852. ;------------------------------------------------------------------------------
  853.  
  854.     Procedure PROC018()
  855.  
  856.     If (Exist(STRING070)) Then
  857.         FOpen 1, STRING070, 0, 0
  858.         FSeek 1, 9, 0
  859.         FRead 1, STRING036, 2
  860.         FSeek 1, 2, 1
  861.         FRead 1, STRING045, 5
  862.         FRead 1, STRING023, 5
  863.         FSeek 1, 33, 1
  864.         FRead 1, STRING047, 5
  865.         FClose 1
  866.         If ((STRING045 <> "") && (STRING045 <> Space(5))) Then
  867.             If ((STRING036 == "-1") && (Upper(STRING023) <> "LOCAL")) Then
  868.                 STRING036 = "E"
  869.             Else
  870.                 STRING036 = ""
  871.             Endif
  872.             If (STRING045 == "11520") STRING045 = "115200"
  873.             If (STRING023 == "11520") STRING023 = "115200"
  874.             STRING050 = "Connect: " + RTrim(STRING023, " ") + STRING036 + "/" + RTrim(STRING045, " ")
  875.             STRING051 = LTrim(Left(TimeAp(STRING047), 5) + Lower(Right(TimeAp(STRING047), 2)), " ")
  876.         Else
  877.             STRING051 = "[Time]"
  878.             STRING050 = "Connect: [Speed/Port]"
  879.         Endif
  880.     Else
  881.         STRING051 = "[Time]"
  882.         STRING050 = "Connect: [Speed/Port]"
  883.     Endif
  884.  
  885.     EndProc
  886.  
  887.  
  888. ;------------------------------------------------------------------------------
  889.  
  890.     Procedure PROC001()
  891.  
  892.     STRING055 = STRING049
  893.     While (InStr(STRING055, "\") <> 0) Do
  894.         STRING055 = Right(STRING055, Len(STRING055) - InStr(STRING055, "\"))
  895.     EndWhile
  896.     STRING054 = Left(STRING049, Len(STRING049) - Len(STRING055))
  897.  
  898.     EndProc
  899.  
  900.  
  901. ;------------------------------------------------------------------------------
  902.  
  903.     Procedure PROC011()
  904.  
  905.     PrintLn TSTRING020(20) + "╒══════════════════════════════════╕"
  906.     PrintLn TSTRING020(20) + "│ " + TSTRING020(19) + Mixed(Left(U_Name(), 25)) + " SL:" + Right(U_Sec, 3) + TSTRING020(20) + " │"
  907.     PrintLn TSTRING020(20) + "╞══════════════════════════════════╡"
  908.     PrintLn TSTRING020(20) + "│ " + TSTRING020(3) + "City: " + TSTRING020(4) + Left(U_City, 24) + TSTRING020(20) + "   │"
  909.     PrintLn TSTRING020(20) + "│                                  │"
  910.     PrintLn TSTRING020(20) + "│    " + TSTRING020(3) + "Modem Connect: " + TSTRING020(4) + Left(Right(STRING050, Len(STRING050) - 9), 15) + TSTRING020(20) + "│"
  911.     PrintLn TSTRING020(20) + "│                                  │"
  912.     PrintLn TSTRING020(20) + "│ " + TSTRING020(3) + "User's Last Scan: " + TSTRING020(4) + Left(U_LDir(), 8) + TSTRING020(20) + "       │"
  913.     PrintLn TSTRING020(20) + "│ " + TSTRING020(3) + "User's Last Date: " + TSTRING020(4) + Left(U_LDate(), 8) + TSTRING020(20) + "       │"
  914.     PrintLn TSTRING020(20) + "│ " + TSTRING020(3) + "User's Last Time: " + TSTRING020(4) + Left(U_LTime(), 5) + TSTRING020(20) + "          │"
  915.     PrintLn TSTRING020(20) + "│ " + TSTRING020(3) + "Total Calls Made: " + TSTRING020(4) + Left(U_Logons(), 5) + TSTRING020(20) + "          │"
  916.     PrintLn TSTRING020(20) + "│                                  │"
  917.     PrintLn TSTRING020(20) + "│ " + TSTRING020(3) + "  UpLoad (Files): " + TSTRING020(4) + Left(U_Ful(), 5) + TSTRING020(20) + "          │"
  918.     PrintLn TSTRING020(20) + "│ " + TSTRING020(3) + "  UpLoad (Bytes): " + TSTRING020(4) + Left(U_Bul(), 10) + TSTRING020(20) + "     │"
  919.     PrintLn TSTRING020(20) + "│ " + TSTRING020(3) + "DownLoad (Files): " + TSTRING020(4) + Left(U_Fdl(), 5) + TSTRING020(20) + "          │"
  920.     PrintLn TSTRING020(20) + "│ " + TSTRING020(3) + "DownLoad (Bytes): " + TSTRING020(4) + Left(U_Bdl(), 10) + TSTRING020(20) + "     │"
  921.     PrintLn TSTRING020(20) + "╘══════════════════════════════════╛"
  922.  
  923.     EndProc
  924.  
  925.  
  926. ;------------------------------------------------------------------------------
  927.  
  928.     Procedure PROC002()
  929.  
  930.     STRING024 = Right("0" + LTrim(Left(TimeAp(Time()), 5) + Right(TimeAp(Time()), 3), " "), 8)
  931.  
  932.     EndProc
  933.  
  934.  
  935. ;------------------------------------------------------------------------------
  936.  
  937.     Procedure PROC019()
  938.  
  939.     If (INTEGER011 <= 18) Then
  940.         INTEGER010 = 5
  941.         STRING017 = TSTRING020(18) + "[" + TSTRING020(17) + "Enter" + TSTRING020(18) + "]=" + TSTRING020(17) + "Exit " + TSTRING020(18) + "/" + TSTRING020(17) + " Display Extended Information for Node #" + TSTRING020(18) + ": "
  942.     Else
  943.         INTEGER010 = 1
  944.     Endif
  945.  
  946.     EndProc
  947.  
  948.  
  949. ;------------------------------------------------------------------------------
  950.  
  951.     Procedure PROC017(String STRING083)
  952.  
  953.     If (Upper(STRING083) == Chr(33)) Then
  954.         Newline
  955.         PROC016()
  956.     ElseIf (((Upper(STRING083) == "/TINY") || (Upper(STRING083) == "T")) || (Upper(STRING083) == "/TERSE")) Then
  957.         INTEGER010 = 1
  958.     Else
  959.         Select Case (Upper(STRING083))
  960.             Case "/BRIEF", "B"
  961.                 INTEGER010 = 3
  962.             Case "/VERBOSE", "V"
  963.                 INTEGER010 = 4
  964.             Case "/MSG", "M"
  965.                 PROC023()
  966.             Case "/EXCLUDE", "E"
  967.                 PROC013()
  968.             Case "/PEXCLUDE", "P"
  969.                 PROC015()
  970.             Case "/ACTIVE", "A"
  971.                 PROC019()
  972.             Case Else
  973.                 PROC020(STRING083)
  974.             Endif
  975.     End Select
  976.  
  977.     EndProc
  978.  
  979.  
  980. ;------------------------------------------------------------------------------
  981.  
  982.     Procedure PROC020(String STRING084)
  983.  
  984.     STRING062 = TSTRING020(15) + "[" + TSTRING020(16) + "?" + TSTRING020(15) + "/" + TSTRING020(16) + "!" + TSTRING020(15) + "/" + TSTRING020(16) + "Q" + TSTRING020(15) + "/" + TSTRING020(16) + "E" + TSTRING020(15) + "] [" + TSTRING020(16) + "T" + TSTRING020(15) + "]" + TSTRING020(16) + "erse, " + TSTRING020(15) + "[" + TSTRING020(16) + "B" + TSTRING020(15) + "]" + TSTRING020(16) + "rief, " + TSTRING020(15) + "[" + TSTRING020(16) + "V" + TSTRING020(15) + "]" + TSTRING020(16) + "erbose"
  985.     If (INTEGER011 < 19) STRING062 = STRING062 + " or " + TSTRING020(15) + "[" + TSTRING020(16) + "A" + TSTRING020(15) + "]" + TSTRING020(16) + "ctive"
  986.     STRING062 = STRING062 + " Mode? " + TSTRING020(15) + "("
  987.     If (TSTRING022(2) <> "") Then
  988.         If (Upper(TSTRING022(2)) == Chr(33)) Then
  989.             Newline
  990.             PROC016()
  991.         ElseIf (((Upper(TSTRING022(2)) == "/TINY") || (Upper(TSTRING022(2)) == "T")) || (Upper(TSTRING022(2)) == "/TERSE")) Then
  992.             INTEGER010 = 1
  993.             Goto LABEL032
  994.         Else
  995.             Select Case (Upper(TSTRING022(2)))
  996.                 Case "/BRIEF", "B"
  997.                     INTEGER010 = 3
  998.                     Goto LABEL032
  999.                 Case "/VERBOSE", "V"
  1000.                     INTEGER010 = 4
  1001.                     Goto LABEL032
  1002.                 Case "/EXCLUDE", "E"
  1003.                     PROC013()
  1004.                 Case "/PEXCLUDE", "P"
  1005.                     PROC015()
  1006.                 Case "/MSG", "M"
  1007.                     PROC023()
  1008.                 Case "/ACTIVE", "A"
  1009.                     PROC019()
  1010.                 Else
  1011.                 Endif
  1012.         End Select
  1013.         TpaGet STRING002, STRING014
  1014.         If ((STRING014 <> "") && (STRING014 <> " ")) Then
  1015.             If (Right(Asc(STRING014), 1) == "5") Then
  1016.                 PROC019()
  1017.             Else
  1018.                 INTEGER010 = Right(Asc(STRING014), 1)
  1019.             Endif
  1020.         Else
  1021.             Select Case (STRING084)
  1022.                 Case "/DEF=T"
  1023.                     STRING025 = "t"
  1024.                     STRING026 = 1
  1025.                 Case "/DEF=B"
  1026.                     STRING025 = "b"
  1027.                     STRING026 = 3
  1028.                 Case "/DEF=A"
  1029.                     If (INTEGER011 <= 18) Then
  1030.                         STRING025 = "a"
  1031.                         STRING026 = 5
  1032.                     Else
  1033.                         STRING025 = "t"
  1034.                         STRING026 = 1
  1035.                     Endif
  1036.                 Case Else
  1037.                     STRING025 = "v"
  1038.                     STRING026 = 4
  1039.             End Select
  1040.             Newline
  1041.             Print STRING062
  1042.             DefColor
  1043.             Print STRING025 + TSTRING020(15) + ")"
  1044.             Backup 2
  1045.             DefColor
  1046.             While (STRING052 <> Chr(13)) Do
  1047.                 STRING052 = Inkey()
  1048.                 If (Abort()) ResetDisp
  1049.                 If (Upper(STRING052) == "T") Then
  1050.                     Print "T"
  1051.                     INTEGER010 = 1
  1052.                     Goto LABEL031
  1053.                     Continue
  1054.                 Endif
  1055.                 If (Upper(STRING052) == "B") Then
  1056.                     Print "B"
  1057.                     INTEGER010 = 3
  1058.                     Goto LABEL031
  1059.                     Continue
  1060.                 Endif
  1061.                 If (Upper(STRING052) == "V") Then
  1062.                     Print "V"
  1063.                     INTEGER010 = 4
  1064.                     Goto LABEL031
  1065.                     Continue
  1066.                 Endif
  1067.                 If (Upper(STRING052) == "E") Then
  1068.                     Print "E"
  1069.                     Backup 80
  1070.                     ClrEol
  1071.                     PROC013()
  1072.                     Continue
  1073.                 Endif
  1074.                 If (Upper(STRING052) == "P") Then
  1075.                     Print "P"
  1076.                     Backup 80
  1077.                     ClrEol
  1078.                     PROC015()
  1079.                     Continue
  1080.                 Endif
  1081.                 If (Upper(STRING052) == "!") Then
  1082.                     Print "!"
  1083.                     Backup 80
  1084.                     ClrEol
  1085.                     PROC016()
  1086.                     Continue
  1087.                 Endif
  1088.                 If (Upper(STRING052) == "M") Then
  1089.                     Print "M"
  1090.                     Backup 80
  1091.                     ClrEol
  1092.                     PROC023()
  1093.                     Continue
  1094.                 Endif
  1095.                 If (Upper(STRING052) == "Q") Then
  1096.                     Print "Q"
  1097.                     Newline
  1098.                     End
  1099.                     Continue
  1100.                 Endif
  1101.                 If (Upper(STRING052) == "?") Then
  1102.                     Print "?"
  1103.                     Newline
  1104.                     PROC010()
  1105.                     Goto LABEL032
  1106.                     Continue
  1107.                 Endif
  1108.                 If (Upper(STRING052) == "A") Then
  1109.                     If (INTEGER011 <= 18) Then
  1110.                         Print "A"
  1111.                         PROC019()
  1112.                         Goto LABEL031
  1113.                     Endif
  1114.                 Endif
  1115.             EndWhile
  1116.             Print Upper(STRING025)
  1117.             INTEGER010 = STRING026
  1118.             :LABEL031
  1119.             Backup 80
  1120.             ClrEol
  1121.         Endif
  1122.     Endif
  1123.     :LABEL032
  1124.  
  1125.     EndProc
  1126.  
  1127.  
  1128. ;------------------------------------------------------------------------------
  1129.  
  1130.     Procedure PROC010()
  1131.  
  1132.     If (Exist(STRING009)) Goto LABEL033
  1133.     Newline
  1134.     PrintLn "> " + STRING009 + " does not exist!"
  1135.     Goto LABEL034
  1136.     :LABEL033
  1137.     DispFile STRING009, 0
  1138.     :LABEL034
  1139.     INTEGER001 = 1
  1140.  
  1141.     EndProc
  1142.  
  1143.  
  1144. ;------------------------------------------------------------------------------
  1145.  
  1146.     Procedure PROC006()
  1147.  
  1148.     FOpen 3, STRING004, 0, 0
  1149.     FGet 3, STRING043
  1150.     If (Upper(Left(STRING043, 1)) == "N") BOOLEAN001 = STRING037
  1151.     FGet 3, STRING043
  1152.     If (Upper(Left(STRING043, 1)) == "N") BOOLEAN002 = STRING037
  1153.     FGet 3, STRING043
  1154.     If (Upper(STRING043) == "Y") BOOLEAN003 = 1
  1155.     FGet 3, STRING043
  1156.     If (STRING043 <> "") INTEGER007 = STRING043
  1157.     FGet 3, STRING043
  1158.     If (STRING043 <> "") INTEGER008 = STRING043
  1159.     FGet 3, STRING043
  1160.     If (STRING043 <> "") INTEGER009 = STRING043
  1161.     FGet 3, STRING043
  1162.     If (STRING043 <> "") STRING021 = RTrim(Left(STRING043, 6), " ")
  1163.     FClose 3
  1164.  
  1165.     EndProc
  1166.  
  1167.  
  1168. ;------------------------------------------------------------------------------
  1169.  
  1170.     Procedure PROC003()
  1171.  
  1172.     FOpen 6, STRING008, 0, 0
  1173.     FGet 6, STRING043
  1174.     If ((STRING043 <> "") && (Len(StripAtx(STRING043)) <= 38)) TSTRING053(1) = STRING043
  1175.     FGet 6, STRING043
  1176.     If ((STRING043 <> "") && (Len(StripAtx(STRING043)) <= 38)) TSTRING053(2) = STRING043
  1177.     FGet 6, STRING043
  1178.     If ((STRING043 <> "") && (Len(StripAtx(STRING043)) <= 38)) TSTRING053(3) = STRING043
  1179.     FGet 6, STRING043
  1180.     If ((STRING043 <> "") && (Len(StripAtx(STRING043)) <= 38)) TSTRING053(4) = STRING043
  1181.     FGet 6, STRING043
  1182.     If ((STRING043 <> "") && (Len(StripAtx(STRING043)) <= 38)) TSTRING053(5) = STRING043
  1183.     FGet 6, STRING043
  1184.     If ((STRING043 <> "") && (Len(StripAtx(STRING043)) <= 38)) TSTRING053(6) = STRING043
  1185.     FGet 6, STRING043
  1186.     If ((STRING043 <> "") && (Len(StripAtx(STRING043)) <= 38)) TSTRING053(7) = STRING043
  1187.     FGet 6, STRING043
  1188.     If ((STRING043 <> "") && (Len(StripAtx(STRING043)) <= 38)) TSTRING053(8) = STRING043
  1189.     FGet 6, STRING043
  1190.     If ((STRING043 <> "") && (Len(StripAtx(STRING043)) <= 38)) TSTRING053(9) = STRING043
  1191.     FGet 6, STRING043
  1192.     If ((STRING043 <> "") && (Len(StripAtx(STRING043)) <= 38)) TSTRING053(10) = STRING043
  1193.     FGet 6, STRING043
  1194.     If ((STRING043 <> "") && (Len(StripAtx(STRING043)) <= 38)) TSTRING053(11) = STRING043
  1195.     FGet 6, STRING043
  1196.     If ((STRING043 <> "") && (Len(StripAtx(STRING043)) <= 38)) TSTRING053(12) = STRING043
  1197.     FGet 6, STRING043
  1198.     If ((STRING043 <> "") && (Len(StripAtx(STRING043)) <= 38)) TSTRING053(20) = STRING043
  1199.     FGet 6, STRING043
  1200.     If ((STRING043 <> "") && (Len(StripAtx(STRING043)) <= 38)) TSTRING053(13) = STRING043
  1201.     FGet 6, STRING043
  1202.     If ((STRING043 <> "") && (Len(StripAtx(STRING043)) <= 38)) TSTRING053(14) = STRING043
  1203.     FGet 6, STRING043
  1204.     If ((STRING043 <> "") && (Len(StripAtx(STRING043)) <= 38)) TSTRING053(15) = STRING043
  1205.     FGet 6, STRING043
  1206.     If ((STRING043 <> "") && (Len(StripAtx(STRING043)) <= 38)) TSTRING053(16) = STRING043
  1207.     FGet 6, STRING043
  1208.     If ((STRING043 <> "") && (Len(StripAtx(STRING043)) <= 38)) TSTRING053(17) = STRING043
  1209.     FGet 6, STRING043
  1210.     If ((STRING043 <> "") && (Len(StripAtx(STRING043)) <= 38)) TSTRING053(21) = STRING043
  1211.     FGet 6, STRING043
  1212.     If ((STRING043 <> "") && (Len(StripAtx(STRING043)) <= 38)) TSTRING053(22) = STRING043
  1213.     FGet 6, STRING043
  1214.     If ((STRING043 <> "") && (Len(StripAtx(STRING043)) <= 38)) TSTRING053(23) = STRING043
  1215.     FGet 6, STRING043
  1216.     If ((STRING043 <> "") && (Len(StripAtx(STRING043)) <= 38)) TSTRING053(24) = STRING043
  1217.     FGet 6, STRING043
  1218.     If ((STRING043 <> "") && (Len(StripAtx(STRING043)) <= 38)) TSTRING053(25) = STRING043
  1219.     FGet 6, STRING043
  1220.     If ((STRING043 <> "") && (Len(StripAtx(STRING043)) <= 38)) TSTRING053(26) = STRING043
  1221.     FClose 6
  1222.  
  1223.     EndProc
  1224.  
  1225.  
  1226. ;------------------------------------------------------------------------------
  1227.  
  1228.     Procedure PROC005()
  1229.  
  1230.     FOpen 1, STRING006, 0, 0
  1231.     FGet 1, STRING043
  1232.     If (Left(STRING043, 1) == "@") TSTRING020(20) = Left(Upper(STRING043), 4)
  1233.     FGet 1, STRING043
  1234.     If (Left(STRING043, 1) == "@") TSTRING020(1) = Left(Upper(STRING043), 4)
  1235.     FGet 1, STRING043
  1236.     If (Left(STRING043, 1) == "@") TSTRING020(2) = Left(Upper(STRING043), 4)
  1237.     FGet 1, STRING043
  1238.     If (Left(STRING043, 1) == "@") TSTRING020(3) = Left(Upper(STRING043), 4)
  1239.     FGet 1, STRING043
  1240.     If (Left(STRING043, 1) == "@") TSTRING020(4) = Left(Upper(STRING043), 4)
  1241.     FGet 1, STRING043
  1242.     If (Left(STRING043, 1) == "@") TSTRING020(5) = Left(Upper(STRING043), 4)
  1243.     FGet 1, STRING043
  1244.     If (Left(STRING043, 1) == "@") TSTRING020(6) = Left(Upper(STRING043), 4)
  1245.     FGet 1, STRING043
  1246.     If (Left(STRING043, 1) == "@") TSTRING020(7) = Left(Upper(STRING043), 4)
  1247.     FGet 1, STRING043
  1248.     If (Left(STRING043, 1) == "@") TSTRING020(8) = Left(Upper(STRING043), 4)
  1249.     FGet 1, STRING043
  1250.     If (Left(STRING043, 1) == "@") TSTRING020(9) = Left(Upper(STRING043), 4)
  1251.     FGet 1, STRING043
  1252.     If (Left(STRING043, 1) == "@") TSTRING020(10) = Left(Upper(STRING043), 4)
  1253.     FGet 1, STRING043
  1254.     If (Left(STRING043, 1) == "@") TSTRING020(11) = Left(Upper(STRING043), 4)
  1255.     FGet 1, STRING043
  1256.     If (Left(STRING043, 1) == "@") TSTRING020(12) = Left(Upper(STRING043), 4)
  1257.     FGet 1, STRING043
  1258.     If (Left(STRING043, 1) == "@") TSTRING020(13) = Left(Upper(STRING043), 4)
  1259.     FGet 1, STRING043
  1260.     If (Left(STRING043, 1) == "@") TSTRING020(14) = Left(Upper(STRING043), 4)
  1261.     FGet 1, STRING043
  1262.     If (Left(STRING043, 1) == "@") TSTRING020(16) = Left(Upper(STRING043), 4)
  1263.     FGet 1, STRING043
  1264.     If (Left(STRING043, 1) == "@") TSTRING020(15) = Left(Upper(STRING043), 4)
  1265.     FGet 1, STRING043
  1266.     If (Left(STRING043, 1) == "@") TSTRING020(17) = Left(Upper(STRING043), 4)
  1267.     FGet 1, STRING043
  1268.     If (Left(STRING043, 1) == "@") TSTRING020(18) = Left(Upper(STRING043), 4)
  1269.     FGet 1, STRING043
  1270.     If (Left(STRING043, 1) == "@") TSTRING020(19) = Left(Upper(STRING043), 4)
  1271.     FClose 1
  1272.  
  1273.     EndProc
  1274.  
  1275.  
  1276. ;------------------------------------------------------------------------------
  1277.  
  1278.     Procedure PROC004()
  1279.  
  1280.     TSTRING053(0) = STRING002 + " -> Viewing Node Activity! <- " + STRING002
  1281.     TSTRING053(1) = "Available for CHAT; general BBS usage!"
  1282.     TSTRING053(2) = "Remotely dropped to the BBS systems OS"
  1283.     TSTRING053(3) = "User chatting with the System Operator"
  1284.     TSTRING053(4) = "User is 'CHAT'ting in a group session!"
  1285.     TSTRING053(5) = "Node is currently busy processing mail"
  1286.     TSTRING053(6) = "Node has been requested to Logoff Soon"
  1287.     TSTRING053(7) = "User is receiving a Broadcast Message!"
  1288.     TSTRING053(8) = "Node is now processing a system event!"
  1289.     TSTRING053(9) = "Modem has detected a RING; doing login"
  1290.     TSTRING053(10) = "User is pageing board System Operator!"
  1291.     TSTRING053(11) = "Node has been requested to DOS Recycle"
  1292.     TSTRING053(12) = "User answering an online questionaire!"
  1293.     TSTRING053(20) = "Initiating/completing a File Transfer!"
  1294.     TSTRING053(13) = "UnAvailable for CHAT; general BBS use!"
  1295.     TSTRING053(14) = "Node has been requested to drop to DOS"
  1296.     TSTRING053(15) = "Node is RUSH requested to drop to DOS!"
  1297.     TSTRING053(16) = "Node is open and waiting a RING detect"
  1298.     TSTRING053(17) = "Node is down/closed; idle and inactive"
  1299.     TSTRING053(21) = "UPLoading files with a ZModem Protocol"
  1300.     TSTRING053(22) = "DNLoading files with a ZModem Protocol"
  1301.     TSTRING053(23) = "UPLoading files with HS/Link Protocol!"
  1302.     TSTRING053(24) = "BiDirectional File Transfer w/ HS/Link"
  1303.     TSTRING053(25) = "UPLoading file(s) w/a PCBoard Protocol"
  1304.     TSTRING053(26) = "DNLoading file(s) w/a PCBoard Protocol"
  1305.  
  1306.     EndProc
  1307.  
  1308.  
  1309. ;------------------------------------------------------------------------------
  1310.  
  1311.     Procedure PROC007()
  1312.  
  1313.     TSTRING020(0) = "@X07"
  1314.     TSTRING020(20) = "@X08"
  1315.     TSTRING020(1) = "@X0F"
  1316.     TSTRING020(2) = "@X07"
  1317.     TSTRING020(3) = "@X0B"
  1318.     TSTRING020(4) = "@X03"
  1319.     TSTRING020(5) = "@X0D"
  1320.     TSTRING020(6) = "@X05"
  1321.     TSTRING020(7) = "@X0F"
  1322.     TSTRING020(8) = "@X07"
  1323.     TSTRING020(9) = "@X0B"
  1324.     TSTRING020(10) = "@X03"
  1325.     TSTRING020(11) = "@X0C"
  1326.     TSTRING020(12) = "@X09"
  1327.     TSTRING020(13) = "@X89"
  1328.     TSTRING020(14) = "@X0F"
  1329.     TSTRING020(15) = "@X08"
  1330.     TSTRING020(16) = "@X0F"
  1331.     TSTRING020(17) = "@X0F"
  1332.     TSTRING020(18) = "@X08"
  1333.     TSTRING020(19) = "@X0F"
  1334.  
  1335.     EndProc
  1336.  
  1337.  
  1338. ;------------------------------------------------------------------------------
  1339.  
  1340.     Procedure PROC008()
  1341.  
  1342.     Newline
  1343.     PrintLn TSTRING020(18) + "[" + TSTRING020(19) + "Error" + TSTRING020(18) + "] " + TSTRING020(19) + "Configuration File Error!"
  1344.     Log "" + STRING002 + " " + STRING003 + " " + "" + "[" + "E" + "r" + "r" + "o" + "r" + "]", 0
  1345.     End
  1346.  
  1347.     EndProc
  1348.  
  1349.  
  1350. ;------------------------------------------------------------------------------
  1351.  
  1352.     Procedure PROC012()
  1353.  
  1354.     FOpen 1, STRING005, 0, 0
  1355.     BIGSTR002 = "■"
  1356.     :LABEL035
  1357.     If (Ferr(1)) Goto LABEL036
  1358.     FGet 1, STRING043
  1359.     If ((STRING043 <> "") && (Left(STRING043, 1) <> " ")) BIGSTR002 = BIGSTR002 + Upper(STRING043) + "■"
  1360.     Goto LABEL035
  1361.     :LABEL036
  1362.     FClose 1
  1363.  
  1364.     EndProc
  1365.  
  1366.  
  1367. ;------------------------------------------------------------------------------
  1368.  
  1369.     Procedure PROC009()
  1370.  
  1371.     Time     TIME001
  1372.     Integer  INTEGER014
  1373.  
  1374.     FOpen 1, ReadLine(PCBDat(), 200), 0, 0
  1375.     FClose -1
  1376.     FSeek 1, 77 * INTEGER003, 0
  1377.     FSeek 1, 54, 1
  1378.     FRead 1, STRING044, 6
  1379.     FClose 1
  1380.     If ((STRING044 <> "") && (STRING044 <> Space(6))) Then
  1381.         TIME001 = STRING044
  1382.         INTEGER004 = TIME001
  1383.         INTEGER014 = Time()
  1384.         If (INTEGER004 > INTEGER014) Then
  1385.             STRING013 = String((86400 + INTEGER014 - INTEGER004) / 60)
  1386.         Else
  1387.             STRING013 = String((INTEGER014 - INTEGER004) / 60)
  1388.         Endif
  1389.         STRING044 = LTrim(Left(TimeAp(STRING044), 5) + Lower(Right(TimeAp(STRING044), 2)), " ")
  1390.     Else
  1391.         STRING044 = "00:00am"
  1392.         STRING013 = "??"
  1393.     Endif
  1394.  
  1395.     EndProc
  1396.  
  1397.  
  1398. ;------------------------------------------------------------------------------
  1399.  
  1400.     Procedure PROC013()
  1401.  
  1402.     GetUser
  1403.     If (U_Sec < INTEGER007) Then
  1404.         Newline
  1405.         PrintLn TSTRING020(3) + "Invalid Security Level"
  1406.         PROC022()
  1407.     Endif
  1408.     If (Exist(STRING011 + String(PcbNode()))) Then
  1409.         STRING012 = ReadLine(STRING011 + String(PcbNode()), 1)
  1410.         FClose -1
  1411.         If (STRING012 == U_Name()) Then
  1412.             Delete STRING011 + String(PcbNode())
  1413.             Newline
  1414.             PrintLn TSTRING020(3) + STRING002 + " " + "Exclusion: " + TSTRING020(4) + "OFF"
  1415.             Log "" + STRING002 + " " + STRING003 + " [EToggle: OFF]", 0
  1416.         Else
  1417.             Gosub LABEL037
  1418.         Endif
  1419.     Else
  1420.         Gosub LABEL037
  1421.     Endif
  1422.     PROC022()
  1423.     :LABEL037
  1424.     FCreate 1, STRING011 + String(PcbNode()), 1, 0
  1425.     FPutLn 1, Upper(U_Name())
  1426.     FClose 1
  1427.     Newline
  1428.     PrintLn TSTRING020(3) + STRING002 + " " + "Exclusion: " + TSTRING020(4) + "ON"
  1429.     Log "" + STRING002 + " " + STRING003 + " [EToggle: ON]", 0
  1430.     Return
  1431.  
  1432.     EndProc
  1433.  
  1434.  
  1435. ;------------------------------------------------------------------------------
  1436.  
  1437.     Procedure PROC015()
  1438.  
  1439.     String   STRING085
  1440.     String   STRING086
  1441.  
  1442.     GetUser
  1443.     If (U_Sec < INTEGER008) Then
  1444.         Newline
  1445.         PrintLn TSTRING020(3) + "Invalid Security Level"
  1446.         PROC022()
  1447.     Endif
  1448.     If (Exist(STRING005)) Then
  1449.         FOpen 2, STRING005, 0, 0
  1450.         FCreate 3, PPEPath() + STRING002 + "_EXC." + String(PcbNode()), 1, 0
  1451.         :LABEL038
  1452.         If (Ferr(2)) Goto LABEL040
  1453.         FGet 2, STRING085
  1454.         If (STRING085 <> "") Then
  1455.             If (Upper(STRING085) <> U_Name()) Then
  1456.                 FPutLn 3, STRING085
  1457.                 Goto LABEL039
  1458.             Endif
  1459.             STRING086 = 19
  1460.         Endif
  1461.         :LABEL039
  1462.         Goto LABEL038
  1463.         :LABEL040
  1464.         FClose 2
  1465.         FClose 3
  1466.         Delete STRING005
  1467.         Rename PPEPath() + STRING002 + "_EXC." + String(PcbNode()), STRING005
  1468.     Endif
  1469.     If (STRING086 == "") Then
  1470.         If (Exist(STRING005)) Goto LABEL041
  1471.         FCreate 1, STRING005, 1, 0
  1472.         FPutLn 1, Upper(U_Name())
  1473.         FClose 1
  1474.         Goto LABEL042
  1475.         :LABEL041
  1476.         FAppend 1, STRING005, 1, 0
  1477.         FPutLn 1, Upper(U_Name())
  1478.         FClose 1
  1479.         :LABEL042
  1480.         Newline
  1481.         PrintLn TSTRING020(3) + STRING002 + " Permanent Exclusion: " + TSTRING020(4) + "ON"
  1482.         Log "" + STRING002 + " " + STRING003 + " [PEToggle: ON]", 0
  1483.     Else
  1484.         Newline
  1485.         PrintLn TSTRING020(3) + STRING002 + " Permanent Exclusion: " + TSTRING020(4) + "OFF"
  1486.         Log "" + STRING002 + " " + STRING003 + " [PEToggle: OFF]", 0
  1487.     Endif
  1488.     PROC022()
  1489.  
  1490.     EndProc
  1491.  
  1492.  
  1493. ;------------------------------------------------------------------------------
  1494.  
  1495.     Function FUNCTION002() Boolean
  1496.  
  1497.     String   STRING087
  1498.  
  1499.     If (FileInf(PPEPath() + PPEName() + ".PPE", 4) <> 36528) FUNCTION002 = 1
  1500.  
  1501.     EndFunc
  1502.  
  1503.  
  1504. ;------------------------------------------------------------------------------
  1505.  
  1506.     Procedure PROC021()
  1507.  
  1508.     Select Case (UN_Stat())
  1509.         Case ""
  1510.             STRING075 = "Z"
  1511.         Case " "
  1512.             STRING075 = "Y"
  1513.         Case Else
  1514.             STRING075 = UN_Stat()
  1515.     End Select
  1516.     TSTRING018(INTEGER003) = "/" + String(STRING075)
  1517.     STRING028 = STRING074
  1518.  
  1519.     EndProc
  1520.  
  1521.  
  1522. ;------------------------------------------------------------------------------
  1523.  
  1524.     Procedure PROC016()
  1525.  
  1526.     String   STRING087
  1527.  
  1528.     TpaGet STRING002, STRING087
  1529.     TpaPut STRING002, Chr(255)
  1530.     TpaGet STRING002, STRING014
  1531.     If (STRING014 <> Chr(255)) Then
  1532.         Newline
  1533.         PrintLn TSTRING020(3) + STRING002 + " TPA Not Installed"
  1534.         Log "" + STRING002 + " " + STRING003 + " [Error: No TPA]", 0
  1535.         PROC022()
  1536.     Endif
  1537.     TpaPut STRING002, STRING087
  1538.     STRING014 = ""
  1539.     If (INTEGER011 < 19) Then
  1540.         Print TSTRING020(16) + "SET DEFAULT TO: " + TSTRING020(15) + "[" + TSTRING020(16) + "N" + TSTRING020(15) + "]" + TSTRING020(16) + "o Default, " + TSTRING020(15) + "[" + TSTRING020(16) + "T" + TSTRING020(15) + "]" + TSTRING020(16) + "erse, " + TSTRING020(15) + "[" + TSTRING020(16) + "B" + TSTRING020(15) + "]" + TSTRING020(16) + "rief, " + TSTRING020(15) + "[" + TSTRING020(16) + "V" + TSTRING020(15) + "]" + TSTRING020(16) + "erbose or " + TSTRING020(15) + "[" + TSTRING020(16) + "A" + TSTRING020(15) + "]" + TSTRING020(16) + "ctive Mode? "
  1541.         InputStr "_", STRING014, 0, 1, "NnTtBbVvAa", 32
  1542.     Else
  1543.         Print TSTRING020(16) + "SET DEFAULT TO: " + TSTRING020(15) + "[" + TSTRING020(16) + "N" + TSTRING020(15) + "]" + TSTRING020(16) + "o Default, " + TSTRING020(15) + "[" + TSTRING020(16) + "T" + TSTRING020(15) + "]" + TSTRING020(16) + "erse, " + TSTRING020(15) + "[" + TSTRING020(16) + "B" + TSTRING020(15) + "]" + TSTRING020(16) + "rief, or " + TSTRING020(15) + "[" + TSTRING020(16) + "V" + TSTRING020(15) + "]" + TSTRING020(16) + "erbose Mode? "
  1544.         InputStr "_", STRING014, 0, 1, "NnTtBbVv", 32
  1545.     Endif
  1546.     Select Case (STRING014)
  1547.         Case "T", "t"
  1548.             TpaPut STRING002, Chr(1)
  1549.         Case "B", "b"
  1550.             TpaPut STRING002, Chr(3)
  1551.         Case "V", "v"
  1552.             TpaPut STRING002, Chr(4)
  1553.         Case "A", "a"
  1554.             TpaPut STRING002, Chr(5)
  1555.         Case Else
  1556.             TpaPut STRING002, " "
  1557.     End Select
  1558.     PROC022()
  1559.  
  1560.     EndProc
  1561.  
  1562.  
  1563. ;------------------------------------------------------------------------------
  1564.  
  1565.     Procedure PROC022()
  1566.  
  1567.     RdUNet PcbNode()
  1568.     WrUNet PcbNode(), STRING065, UN_Name(), UN_City(), UN_Name(), ""
  1569.     End
  1570.  
  1571.     EndProc
  1572.  
  1573.  
  1574. ;------------------------------------------------------------------------------
  1575.  
  1576.     Function FUNCTION001(Integer INTEGER015, Integer INTEGER016) Boolean
  1577.  
  1578.     Integer  INTEGER017
  1579.  
  1580.     If (Crc32(0, STRING002 + " " + STRING003) <> 2.5392e+09) FUNCTION001 = 1
  1581.  
  1582.     EndFunc
  1583.  
  1584.  
  1585. ;------------------------------------------------------------------------------
  1586.  
  1587.     Procedure PROC023()
  1588.  
  1589.     Integer  INTEGER017
  1590.     String   STRING088
  1591.     String   STRING089
  1592.  
  1593.     GetUser
  1594.     If (U_Sec < INTEGER009) Then
  1595.         Newline
  1596.         PrintLn TSTRING020(3) + "Invalid Security Level"
  1597.         End
  1598.     Endif
  1599.     Print TSTRING020(16) + "Send to Node #: "
  1600.     InputStr "_", INTEGER017, 0, Len(INTEGER011), Mask_Num(), 32
  1601.     RdUNet INTEGER017
  1602.     STRING089 = UN_Stat()
  1603.     If ((InStr("YHZ DBN", STRING089) <> 0) || (STRING089 == "")) Then
  1604.         PrintLn TSTRING020(3) + "Node Unavailable for MSG"
  1605.         PROC022()
  1606.     Endif
  1607.     Print TSTRING020(16) + "MSG: " + TSTRING020(15) + "[" + Space(62 - Len(String(PcbNode()))) + "]"
  1608.     Backup 63 - Len(String(PcbNode()))
  1609.     InputStr "_", STRING088, 0, 62 - Len(String(PcbNode())), Mask_Ascii(), 32
  1610.     If (STRING088 <> "") Then
  1611.         Broadcast INTEGER017, INTEGER017, "MSG FROM NODE " + String(PcbNode()) + ": " + STRING088
  1612.         PrintLn TSTRING020(15) + "[" + TSTRING020(16) + STRING002 + " " + STRING003 + TSTRING020(15) + "]" + TSTRING020(16) + " MSG SENT TO NODE " + String(INTEGER017) + " ..."
  1613.         Log "" + STRING002 + " " + STRING003 + " [MSG: Node " + String(INTEGER017) + "]", 0
  1614.     Else
  1615.         PrintLn TSTRING020(15) + "[" + TSTRING020(16) + STRING002 + " " + STRING003 + TSTRING020(15) + "]" + TSTRING020(16) + " MSG ABORTED ..."
  1616.     Endif
  1617.     PROC022()
  1618.  
  1619.     EndProc
  1620.  
  1621.  
  1622. ;------------------------------------------------------------------------------
  1623. ;
  1624. ; Usage report (before postprocessing)
  1625. ;
  1626. ; ■ Statements used :
  1627. ;
  1628. ;    11      End
  1629. ;    2       Cls
  1630. ;    5       ClrEol
  1631. ;    1       Wait
  1632. ;    324     Goto 
  1633. ;    398     Let 
  1634. ;    30      Print 
  1635. ;    55      PrintLn 
  1636. ;    259     If 
  1637. ;    1       DispFile 
  1638. ;    3       FCreate 
  1639. ;    11      FOpen 
  1640. ;    1       FAppend 
  1641. ;    27      FClose 
  1642. ;    55      FGet 
  1643. ;    4       FPutLn 
  1644. ;    5       ResetDisp
  1645. ;    4       StartDisp 
  1646. ;    3       GetUser
  1647. ;    6       DefColor
  1648. ;    5       Delete 
  1649. ;    9       Log 
  1650. ;    4       InputStr 
  1651. ;    30      Gosub 
  1652. ;    10      Return
  1653. ;    4       Inc 
  1654. ;    17      Newline
  1655. ;    1       Newlines 
  1656. ;    1       Tokenize 
  1657. ;    2       GetToken 
  1658. ;    1       Broadcast 
  1659. ;    1       KbdChkOn
  1660. ;    6       RdUNet 
  1661. ;    2       WrUNet 
  1662. ;    6       AnsiPos 
  1663. ;    12      Backup 
  1664. ;    7       Forward 
  1665. ;    1       Rename 
  1666. ;    6       FSeek 
  1667. ;    8       FRead 
  1668. ;    1       Copy 
  1669. ;    2       GetAltUser 
  1670. ;    3       TpaGet 
  1671. ;    7       TpaPut 
  1672. ;    26      EndProc
  1673. ;    2       EndFunc
  1674. ;
  1675. ;
  1676. ; ■ Functions used :
  1677. ;
  1678. ;    11      -
  1679. ;    2       *
  1680. ;    4       /
  1681. ;    922     +
  1682. ;    48      -
  1683. ;    198     ==
  1684. ;    69      <>
  1685. ;    9       <
  1686. ;    37      <=
  1687. ;    5       >
  1688. ;    9       >=
  1689. ;    171     !
  1690. ;    52      &&
  1691. ;    42      ||
  1692. ;    71      Len(
  1693. ;    3       Lower()
  1694. ;    86      Upper()
  1695. ;    124     Left()
  1696. ;    37      Right()
  1697. ;    20      Space()
  1698. ;    3       Ferr()
  1699. ;    50      Chr()
  1700. ;    3       Asc()
  1701. ;    21      InStr()
  1702. ;    5       Abort()
  1703. ;    17      LTrim()
  1704. ;    6       RTrim()
  1705. ;    5       Time()
  1706. ;    8       U_Name()
  1707. ;    2       U_LDate()
  1708. ;    2       U_LTime()
  1709. ;    2       U_LDir()
  1710. ;    2       U_Logons()
  1711. ;    2       U_Ful()
  1712. ;    2       U_Fdl()
  1713. ;    2       U_Bdl()
  1714. ;    2       U_Bul()
  1715. ;    6       TimeAp()
  1716. ;    34      StripAtx()
  1717. ;    1       Strip()
  1718. ;    2       Inkey()
  1719. ;    46      String()
  1720. ;    2       Mask_Num()
  1721. ;    1       Mask_Ascii()
  1722. ;    1       PCBDat()
  1723. ;    11      PPEPath()
  1724. ;    15      PcbNode()
  1725. ;    10      ReadLine()
  1726. ;    26      UN_Stat()
  1727. ;    11      UN_Name()
  1728. ;    3       UN_City()
  1729. ;    17      UN_Oper()
  1730. ;    15      Exist()
  1731. ;    1       TokenStr()
  1732. ;    1       GetY()
  1733. ;    3       FileInf()
  1734. ;    1       PPEName()
  1735. ;    4       U_RecNum()
  1736. ;    14      ReplaceStr()
  1737. ;    4       Mixed()
  1738. ;    1       Crc32()
  1739. ;
  1740. ;------------------------------------------------------------------------------
  1741. ;
  1742. ; Analysis flags : Rd
  1743. ;
  1744. ; R - Read user ■ 5
  1745. ;     User records are read, this may signify that someone wants to get
  1746. ;     various informations about a user (for example his password), but
  1747. ;     this may also be normal for a program accessing user records (for
  1748. ;     example a User Editor)
  1749. ;     ■ Search for : GETALTUSER
  1750. ;
  1751. ; d - Access PCBOARD.DAT ■ 2
  1752. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  1753. ;     for many PPE so they can find various informations on the system
  1754. ;     (system paths, max number of lines in messages, ...) but it may also
  1755. ;     be a way to gather vital informations.
  1756. ;     ■ Search for : PCBDAT()
  1757. ;
  1758. ;------------------------------------------------------------------------------
  1759. ;
  1760. ; Postprocessing report
  1761. ;
  1762. ;    4       For/Next
  1763. ;    5       While/EndWhile
  1764. ;    95      If/Then or If/Then/Else
  1765. ;    12      Select Case
  1766. ;
  1767. ;------------------------------------------------------------------------------
  1768. ;                 AEGiS Corp - Break the routines, code against the machines!
  1769. ;------------------------------------------------------------------------------
  1770.