home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / VIG-PM11.ZIP / PROMAT.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-06-13  |  10KB  |  708 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.1O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     Integer  INTEGER001
  24.     Integer  INTEGER002
  25.     Integer  INTEGER003
  26.     Integer  TINTEGER004(9)
  27.     Integer  INTEGER005
  28.     Integer  INTEGER006
  29.     Integer  INTEGER007
  30.     Integer  INTEGER008
  31.     Integer  INTEGER009
  32.     Integer  INTEGER010
  33.     Integer  TINTEGER011(9)
  34.     Integer  TINTEGER012(9)
  35.     String   STRING001
  36.     String   TSTRING002(14)
  37.     String   TSTRING003(9)
  38.     String   STRING004
  39.     String   STRING005
  40.     String   TSTRING006(9)
  41.     String   STRING007
  42.     String   STRING008
  43.     String   STRING009
  44.     String   STRING010
  45.     String   TSTRING011(37)
  46.     String   STRING012
  47.     String   STRING013
  48.  
  49. ;------------------------------------------------------------------------------
  50.  
  51.     FOpen 1, PPEPath() + "promat.cnf", 0, 0
  52.     For INTEGER009 = 1 To 14
  53.         FGet 1, TSTRING002(INTEGER009)
  54.         TSTRING002(INTEGER009) = Upper(TSTRING002(INTEGER009))
  55.     Next
  56.     FClose 1
  57.     INTEGER008 = 1 + Random(TSTRING002(2) - 1)
  58.     STRING008 = "■ ProMatrix: "
  59.     KeyFlush
  60.     STRING013 = Upper(ReadLine(PCBDat(), 2) + ReadLine(PCBDat(), 94))
  61.     INTEGER005 = ReadLine(PCBDat(), 149)
  62.     INTEGER007 = 1
  63.     For INTEGER009 = 1 To Len(STRING013) Step 2
  64.         INTEGER007 = Left(INTEGER007 * Asc(Mid(STRING013, INTEGER009, 1)), 6)
  65.     Next
  66.     FOpen 1, PPEPath() + "strings.dat", 0, 0
  67.     For INTEGER009 = 1 To 37
  68.         FGet 1, TSTRING011(INTEGER009)
  69.     Next
  70.     FClose 1
  71.     If (OnLocal()) Then
  72.         STRING013 = "Local"
  73.     Else
  74.         STRING013 = Carrier()
  75.     Endif
  76.     FAppend 2, PPEPath() + "promat" + String(PcbNode()) + ".log", 1, 0
  77.     FPutLn 2, "**************************************************************"
  78.     FPutLn 2, String(Date()) + " (" + String(Time()) + ") (" + String(PcbNode()) + ") USER AT MATRIX (" + STRING013 + ") (" + GrafMode() + ")"
  79.     If (Carrier() < TSTRING002(12)) Then
  80.         FPutLn 2, "      Active Event (LOWBAUD)"
  81.         OpText TSTRING002(12)
  82.         INTEGER006 = 34
  83.         Gosub LABEL026
  84.         Newline
  85.         INTEGER006 = 35
  86.         Gosub LABEL026
  87.         InputStr " _", STRING009, 0, 25, Mask_Pwd(), 0
  88.         Newline
  89.         If (Upper(STRING009) <> TSTRING002(13)) Then
  90.             FPutLn 2, "      - Password Failure (" + Upper(STRING009) + ")"
  91.             INTEGER006 = 36
  92.             Gosub LABEL026
  93.             BOOLEAN004 = 1
  94.             BOOLEAN003 = 1
  95.             Goto LABEL001
  96.         Endif
  97.         FPutLn 2, "      - Entered Correct Password"
  98.         INTEGER006 = 37
  99.         Gosub LABEL026
  100.         :LABEL001
  101.         Newline
  102.         Wait
  103.     Endif
  104.     If ((Time() > ToTime(TSTRING002(8))) && (Time() < ToTime(TSTRING002(9)))) Then
  105.         FPutLn 2, "      Active Event (TIMESLOT)"
  106.         INTEGER006 = 30
  107.         Gosub LABEL026
  108.         Newline
  109.         INTEGER006 = 31
  110.         Gosub LABEL026
  111.         InputStr " _", STRING009, 0, 25, Mask_Pwd(), 0
  112.         Newline
  113.         If (Upper(STRING009) <> TSTRING002(7)) Then
  114.             FPutLn 2, "      - Password Failure (" + Upper(STRING009) + ")"
  115.             OpText TimeAp(TSTRING002(9))
  116.             INTEGER006 = 32
  117.             Gosub LABEL026
  118.             BOOLEAN004 = 1
  119.             BOOLEAN003 = 1
  120.             Goto LABEL002
  121.         Endif
  122.         FPutLn 2, "      - Entered Correct Password"
  123.         INTEGER006 = 33
  124.         Gosub LABEL026
  125.         :LABEL002
  126.         Newline
  127.         Wait
  128.     Endif
  129.     Gosub LABEL027
  130.     FPutLn 2, "      ProMatrix Initialized"
  131.     :LABEL003
  132.     If (BOOLEAN004) Goto LABEL022
  133.     Gosub LABEL030
  134.     KeyFlush
  135.     While (STRING004 <> Chr(13)) Do
  136.         If (ScrText(3, 1, 9, 0) <> "ProMatrix") Gosub LABEL030
  137.         STRING004 = Left(Lower(Inkey()), 1)
  138.         If (InStr("drz" + Chr(9), STRING004) <> 0) Then
  139.             Gosub LABEL024
  140.             Inc INTEGER002
  141.             If (INTEGER002 == INTEGER001) INTEGER002 = 0
  142.             Gosub LABEL023
  143.             Continue
  144.         Endif
  145.         If (InStr("ulas", STRING004) <> 0) Then
  146.             Gosub LABEL024
  147.             Dec INTEGER002
  148.             If (INTEGER002 == -1) INTEGER002 = INTEGER001 - 1
  149.             Gosub LABEL023
  150.             Continue
  151.         Endif
  152.         If (STRING004 == "]") Then
  153.             Inc INTEGER008
  154.             If (INTEGER008 > TSTRING002(2)) INTEGER008 = 1
  155.             FPutLn 2, "      Changed Matrix to (" + String(INTEGER008) + ")"
  156.             Gosub LABEL027
  157.             Gosub LABEL030
  158.             Continue
  159.         Endif
  160.         If (STRING004 == "[") Then
  161.             Dec INTEGER008
  162.             If (INTEGER008 < 1) INTEGER008 = TSTRING002(2)
  163.             FPutLn 2, "      Changed Matrix to (" + String(INTEGER008) + ")"
  164.             Gosub LABEL027
  165.             Gosub LABEL030
  166.         Endif
  167.     EndWhile
  168.     DefColor
  169.     STRING009 = ""
  170.     STRING005 = ""
  171.     If (Lower(TSTRING003(INTEGER002)) == "logon") Then
  172.         FPutLn 2, "      Attempting LOGON"
  173.         If (TSTRING002(3) <> "NONE") Then
  174.             INTEGER006 = 1
  175.             Cls
  176.             Gosub LABEL026
  177.             InputStr " _", STRING009, 0, 25, Mask_Pwd(), 0
  178.             Newline
  179.             If (Upper(STRING009) == TSTRING002(3)) Then
  180.                 FPutLn 2, "      - Proceeding to BBS"
  181.                 INTEGER006 = 3
  182.                 Gosub LABEL026
  183.                 BOOLEAN004 = 1
  184.                 Goto LABEL004
  185.             Endif
  186.             FPutLn 2, "      - System Password Failure (" + Upper(STRING009) + ")"
  187.             INTEGER006 = 2
  188.             Gosub LABEL026
  189.             Inc INTEGER003
  190.             Log STRING008 + "Failed Logon, tried (" + STRING009 + ")", 0
  191.             :LABEL004
  192.             Gosub LABEL025
  193.             Goto LABEL005
  194.         Endif
  195.         FPutLn 2, "      - System Password is DISABLED"
  196.         BOOLEAN004 = 1
  197.         :LABEL005
  198.         Goto LABEL021
  199.     Endif
  200.     If (Lower(TSTRING003(INTEGER002)) == "apply") Then
  201.         FPutLn 2, "      Attempting APPLY"
  202.         INTEGER006 = 4
  203.         Cls
  204.         Gosub LABEL026
  205.         InputStr " _", STRING005, 0, 25, Mask_Pwd(), 0
  206.         Newline
  207.         If (STRING005 <> "") Then
  208.             INTEGER010 = U_RecNum(Upper(STRING005))
  209.             If (INTEGER010 < 1) Then
  210.                 If (Exist(PPEPath() + "carpet.red")) Then
  211.                     FOpen 1, PPEPath() + "carpet.red", 0, 0
  212.                     :LABEL006
  213.                     If (Ferr(1)) Goto LABEL007
  214.                     FGet 1, STRING013
  215.                     If (Upper(STRING013) == Upper(STRING005)) Then
  216.                         TSTRING002(4) = "NONE"
  217.                         FPutLn 2, "      - User exists in CARPET.RED (" + Upper(STRING005) + ")"
  218.                     Endif
  219.                     Goto LABEL006
  220.                     :LABEL007
  221.                     FClose 1
  222.                 Endif
  223.                 If (TSTRING002(4) == "NONE") Then
  224.                     FPutLn 2, "      - New User Password is DISABLED"
  225.                     INTEGER006 = 7
  226.                     Gosub LABEL026
  227.                     Gosub LABEL025
  228.                     BOOLEAN004 = 1
  229.                     KbdStuff STRING005 + Chr(13)
  230.                     Goto LABEL008
  231.                 Endif
  232.                 INTEGER006 = 6
  233.                 Gosub LABEL026
  234.                 InputStr " _", STRING009, 0, 25, Mask_Pwd(), 0
  235.                 Newline
  236.                 If (Upper(STRING009) == TSTRING002(4)) Then
  237.                     FPutLn 2, "      - New User Password CORRECT"
  238.                     INTEGER006 = 9
  239.                     Gosub LABEL026
  240.                     Gosub LABEL025
  241.                     BOOLEAN004 = 1
  242.                     KbdStuff STRING005 + Chr(13)
  243.                     Goto LABEL008
  244.                 Endif
  245.                 FPutLn 2, "      - New User Password Failure (" + Upper(STRING009) + ")"
  246.                 INTEGER006 = 8
  247.                 Gosub LABEL026
  248.                 Inc INTEGER003
  249.                 Log STRING008 + "Failed Apply, tried (" + STRING009 + ")", 0
  250.                 Gosub LABEL025
  251.                 :LABEL008
  252.                 Goto LABEL009
  253.             Endif
  254.             FPutLn 2, "      - User Already Exists (" + Upper(STRING005) + ")"
  255.             INTEGER006 = 5
  256.             Gosub LABEL026
  257.             Gosub LABEL025
  258.         Endif
  259.         :LABEL009
  260.         Goto LABEL021
  261.     Endif
  262.     If (Lower(TSTRING003(INTEGER002)) == "check") Then
  263.         FPutLn 2, "      Attempting CHECK"
  264.         Cls
  265.         If (TSTRING002(3) <> "NONE") Then
  266.             INTEGER006 = 10
  267.             Gosub LABEL026
  268.             InputStr " _", STRING005, 0, 25, Mask_Pwd(), 0
  269.             FPutLn 2, "      - Username (" + Upper(STRING005) + ")"
  270.             Newline
  271.             If (STRING005 <> "") Then
  272.                 INTEGER010 = U_RecNum(Upper(STRING005))
  273.                 If (INTEGER010 < 1) Then
  274.                     FPutLn 2, "      - User Doesn't Exist"
  275.                     INTEGER006 = 11
  276.                     Gosub LABEL026
  277.                     Inc INTEGER003
  278.                     Log STRING008 + "Failed Check, tried (" + STRING005 + ")", 0
  279.                     Gosub LABEL025
  280.                     Goto LABEL013
  281.                 Endif
  282.                 INTEGER006 = 12
  283.                 Gosub LABEL026
  284.                 InputStr " _", STRING009, 0, 12, Mask_Pwd(), 1
  285.                 Newline
  286.                 GetAltUser INTEGER010
  287.                 If (Upper(STRING009) == Upper(U_Pwd)) Then
  288.                     If (U_Sec < INTEGER005) Then
  289.                         FPutLn 2, "      - User is DELETED"
  290.                         INTEGER006 = 19
  291.                         Gosub LABEL026
  292.                         Gosub LABEL025
  293.                         BOOLEAN004 = 1
  294.                         BOOLEAN003 = 1
  295.                         Goto LABEL011
  296.                     Endif
  297.                     If (U_Sec < TSTRING002(5)) Then
  298.                         FPutLn 2, "      - User is a NEWUSER"
  299.                         If (TSTRING002(10) == "YES") Then
  300.                             FPutLn 2, "      - Passing Control to PROVOTE for voting stats"
  301.                             INTEGER006 = 14
  302.                             Gosub LABEL026
  303.                             Gosub LABEL025
  304.                             KbdStuff STRING005 + Chr(13)
  305.                             BOOLEAN004 = 1
  306.                             Goto LABEL010
  307.                         Endif
  308.                         Inc INTEGER003
  309.                         INTEGER006 = 18
  310.                         Gosub LABEL026
  311.                         Gosub LABEL025
  312.                         :LABEL010
  313.                         Goto LABEL011
  314.                     Endif
  315.                     FPutLn 2, "      - User is VALIDATED"
  316.                     OpText TSTRING002(3)
  317.                     INTEGER006 = 15
  318.                     Gosub LABEL026
  319.                     Newline
  320.                     INTEGER006 = 17
  321.                     Gosub LABEL026
  322.                     InputYN " _", STRING013, 7
  323.                     Newline
  324.                     If (STRING013 == YesChar()) Then
  325.                         KbdStuff STRING005 + Chr(13)
  326.                         BOOLEAN004 = 1
  327.                     Endif
  328.                     :LABEL011
  329.                     Goto LABEL012
  330.                 Endif
  331.                 FPutLn 2, "      - Password Failure (" + Upper(STRING009) + ")"
  332.                 INTEGER006 = 13
  333.                 Gosub LABEL026
  334.                 Inc INTEGER003
  335.                 Log STRING008 + "Failed Check, tried (" + STRING005 + "," + STRING009 + ")", 0
  336.                 Gosub LABEL025
  337.                 :LABEL012
  338.                 PutUser
  339.             Endif
  340.             :LABEL013
  341.             Goto LABEL014
  342.         Endif
  343.         FPutLn 2, "      - System Password is DISABLED"
  344.         INTEGER006 = 16
  345.         Gosub LABEL026
  346.         Gosub LABEL025
  347.         :LABEL014
  348.         Goto LABEL021
  349.     Endif
  350.     Select Case (Lower(TSTRING003(INTEGER002)))
  351.         Case "feedback"
  352.             FPutLn 2, "      Attempting FEEDBACK"
  353.             AdjTime TSTRING002(14)
  354.             Cls
  355.             OpText ReadLine(PCBDat(), 2)
  356.             INTEGER006 = 21
  357.             Gosub LABEL026
  358.             Newline
  359.             INTEGER006 = 22
  360.             Gosub LABEL026
  361.             InputStr " _", STRING005, 0, 25, Mask_Pwd(), 0
  362.             Newline
  363.             If (STRING005 <> "") Then
  364.                 INTEGER006 = 23
  365.                 Gosub LABEL026
  366.                 InputStr " _", STRING012, 0, 25, Mask_Pwd(), 0
  367.                 Newline
  368.                 If (STRING012 <> "") Then
  369.                     INTEGER006 = 24
  370.                     Gosub LABEL026
  371.                     Newline
  372.                     INTEGER006 = 25
  373.                     Gosub LABEL026
  374.                     Newline
  375.                     FCreate 1, PPEPath() + "feedback." + String(PcbNode()), 1, 0
  376.                     Color 7
  377.                     BOOLEAN002 = 0
  378.                     STRING007 = ""
  379.                     STRING001 = ""
  380.                     :LABEL015
  381.                     If (BOOLEAN002) Goto LABEL019
  382.                     STRING001 = Inkey()
  383.                     If ((STRING001 == "/") && (Len(STRING007) == 0)) Then
  384.                         Print "@X07Command @X08(@X0F?@X07=@X0FHelp@X08)@X07 : "
  385.                         STRING001 = ""
  386.                         While ((STRING001 == "")) STRING001 = Upper(Inkey())
  387.                         If (STRING001 == "S") Then
  388.                             FPutLn 2, "      - Feedback Sent by " + Upper(STRING005)
  389.                             PrintLn "Save"
  390.                             BOOLEAN001 = 1
  391.                             BOOLEAN002 = 1
  392.                             Goto LABEL016
  393.                         Endif
  394.                         If (STRING001 == "A") Then
  395.                             FPutLn 2, "      - Feedback Aborted by " + Upper(STRING005)
  396.                             PrintLn "Abort"
  397.                             BOOLEAN001 = 0
  398.                             BOOLEAN002 = 1
  399.                             Goto LABEL016
  400.                         Endif
  401.                         If (STRING001 == "?") Then
  402.                             PrintLn "Help"
  403.                             Newline
  404.                             PrintLn "     (S) : Save message"
  405.                             PrintLn "     (A) : Abort message"
  406.                             PrintLn "     (?) : This help screen"
  407.                             Newline
  408.                             Goto LABEL016
  409.                         Endif
  410.                         Print Chr(13)
  411.                         ClrEol
  412.                         :LABEL016
  413.                         Goto LABEL018
  414.                     Endif
  415.                     If ((Asc(STRING001) > 31) && (Len(STRING001) == 1)) Then
  416.                         STRING007 = STRING007 + STRING001
  417.                         If (Len(STRING007) < 79) Then
  418.                             Print STRING001
  419.                             Goto LABEL017
  420.                         Endif
  421.                         For INTEGER009 = Len(STRING007) To 1 Step -1
  422.                             If (Mid(STRING007, INTEGER009, 1) == " ") Then
  423.                                 Backup Len(STRING007) - INTEGER009
  424.                                 ClrEol
  425.                                 STRING013 = Right(STRING007, Len(STRING007) - INTEGER009)
  426.                                 STRING007 = Left(STRING007, INTEGER009 - 1)
  427.                                 FPutLn 1, STRING007
  428.                                 STRING007 = STRING013
  429.                                 Newline
  430.                                 Print STRING007
  431.                                 INTEGER009 = 0
  432.                                 Continue
  433.                             Endif
  434.                             If (INTEGER009 == 1) Then
  435.                                 STRING007 = Left(STRING007, Len(STRING007) - 1)
  436.                                 FPutLn 1, STRING007
  437.                                 Newline
  438.                                 Print STRING001
  439.                                 STRING007 = STRING001
  440.                             Endif
  441.                         Next
  442.                         :LABEL017
  443.                         Goto LABEL018
  444.                     Endif
  445.                     If (STRING001 == Chr(13)) Then
  446.                         FPutLn 1, STRING007
  447.                         Newline
  448.                         STRING007 = ""
  449.                         Goto LABEL018
  450.                     Endif
  451.                     If ((STRING001 == Chr(8)) && (Len(STRING007) > 0)) Then
  452.                         STRING007 = Left(STRING007, Len(STRING007) - 1)
  453.                         Print Chr(8) + " " + Chr(8)
  454.                     Endif
  455.                     :LABEL018
  456.                     Goto LABEL015
  457.                     :LABEL019
  458.                     FPutLn 1, ""
  459.                     FPutLn 1, "@X08 ■ Via ProMatrix by ViGilante ■"
  460.                     FClose 1
  461.                     Newline
  462.                     If (BOOLEAN001) Then
  463.                         Message 0, Upper(ReadLine(PCBDat(), 2)), Upper(STRING005), STRING012, "R", 0, 0, 0, PPEPath() + "feedback." + String(PcbNode())
  464.                         INTEGER006 = 26
  465.                         Gosub LABEL026
  466.                         Gosub LABEL025
  467.                         Goto LABEL020
  468.                     Endif
  469.                     INTEGER006 = 27
  470.                     Gosub LABEL026
  471.                     Gosub LABEL025
  472.                     :LABEL020
  473.                     Delete PPEPath() + "feedback." + String(PcbNode())
  474.                 Endif
  475.             Endif
  476.             AdjTime -TSTRING002(14)
  477.         Case "logoff"
  478.             INTEGER006 = 28
  479.             Cls
  480.             Gosub LABEL026
  481.             Newline
  482.             BOOLEAN004 = 1
  483.             BOOLEAN003 = 1
  484.         Case Else
  485.             FPutLn 2, "      Executing External PPE (" + Upper(TSTRING003(INTEGER002)) + ")"
  486.             Cls
  487.             DispStr TSTRING003(INTEGER002)
  488.             FPutLn 2, "      Back From External PPE (" + Upper(TSTRING003(INTEGER002)) + ")"
  489.             Gosub LABEL025
  490.     End Select
  491.     :LABEL021
  492.     Goto LABEL003
  493.     :LABEL022
  494.     FPutLn 2, String(Date()) + " (" + String(Time()) + ") (" + String(PcbNode()) + ") USER OFF NORMALLY"
  495.     FClose 2
  496.     If (TSTRING002(11) <> "YES") Delete PPEPath() + "promat" + String(PcbNode()) + ".log"
  497.     If (BOOLEAN003) Bye
  498.     ResetDisp
  499.     End
  500.     :LABEL023
  501.     STRING010 = ScrText(TINTEGER011(INTEGER002), TINTEGER012(INTEGER002), TINTEGER004(INTEGER002), 1)
  502.     AnsiPos TINTEGER011(INTEGER002), TINTEGER012(INTEGER002)
  503.     Print TSTRING006(INTEGER002)
  504.     AnsiPos TINTEGER011(INTEGER002), TINTEGER012(INTEGER002)
  505.     Return
  506.     :LABEL024
  507.     AnsiPos TINTEGER011(INTEGER002), TINTEGER012(INTEGER002)
  508.     Print STRING010
  509.     Return
  510.     :LABEL025
  511.     Newline
  512.     Wait
  513.     If ((INTEGER003 >= TSTRING002(6)) && (TSTRING002(6) <> 0)) Then
  514.         FPutLn 2, "      +++ Excessive Password Failures +++"
  515.         Newline
  516.         DispStr TSTRING011(29)
  517.         Newline
  518.         BOOLEAN004 = 1
  519.         BOOLEAN003 = 1
  520.     Endif
  521.     Return
  522.     :LABEL026
  523.     DispStr TSTRING011(INTEGER006)
  524.     StartDisp 1
  525.     Return
  526.     :LABEL027
  527.     INTEGER001 = 0
  528.     BOOLEAN002 = 0
  529.     FOpen 1, PPEPath() + "matrix" + String(INTEGER008) + ".cnf", 0, 0
  530.     :LABEL028
  531.     If (BOOLEAN002) Goto LABEL029
  532.     FGet 1, TSTRING003(INTEGER001)
  533.     FGet 1, STRING013
  534.     FGet 1, TSTRING006(INTEGER001)
  535.     If ((TSTRING006(INTEGER001) == "") || Ferr(1)) Then
  536.         BOOLEAN002 = 1
  537.     Else
  538.         Tokenize STRING013
  539.         TINTEGER011(INTEGER001) = GetToken()
  540.         TINTEGER012(INTEGER001) = GetToken()
  541.         TINTEGER004(INTEGER001) = GetToken()
  542.         FGet 1, STRING013
  543.         Inc INTEGER001
  544.     Endif
  545.     Goto LABEL028
  546.     :LABEL029
  547.     FClose 1
  548.     Return
  549.     :LABEL030
  550.     StartDisp 1
  551.     DefColor
  552.     Cls
  553.     DispFile PPEPath() + "matrix" + String(INTEGER008) + ".pcb", 0
  554.     AnsiPos 1, 1
  555.     Color (Random(5) + 2) * 16 - 1
  556.     Print "  ProMatrix v1.1 by ViGilante                     Arrows,A,Z=Move  C/R=Choice  "
  557.     If (TSTRING002(1) <> INTEGER007) Then
  558.         AnsiPos 33, 1
  559.         Color CurColor() + 128
  560.         Print "<UNREGISTERED>"
  561.     Endif
  562.     STRING004 = ""
  563.     INTEGER002 = 0
  564.     Gosub LABEL023
  565.     Return
  566.  
  567. ;------------------------------------------------------------------------------
  568. ;
  569. ; Usage report (before postprocessing)
  570. ;
  571. ; ■ Statements used :
  572. ;
  573. ;    1       End
  574. ;    7       Cls
  575. ;    2       ClrEol
  576. ;    3       Wait
  577. ;    3       Color 
  578. ;    97      Goto 
  579. ;    106     Let 
  580. ;    10      Print 
  581. ;    6       PrintLn 
  582. ;    63      If 
  583. ;    1       DispFile 
  584. ;    1       FCreate 
  585. ;    4       FOpen 
  586. ;    1       FAppend 
  587. ;    6       FClose 
  588. ;    7       FGet 
  589. ;    42      FPutLn 
  590. ;    1       ResetDisp
  591. ;    2       StartDisp 
  592. ;    1       PutUser
  593. ;    2       DefColor
  594. ;    2       Delete 
  595. ;    2       AdjTime 
  596. ;    4       Log 
  597. ;    9       InputStr 
  598. ;    1       InputYN 
  599. ;    61      Gosub 
  600. ;    6       Return
  601. ;    8       Inc 
  602. ;    2       Dec 
  603. ;    28      Newline
  604. ;    1       Tokenize 
  605. ;    4       KbdStuff 
  606. ;    1       Bye
  607. ;    4       OpText 
  608. ;    3       DispStr 
  609. ;    5       AnsiPos 
  610. ;    1       Backup 
  611. ;    1       Message 
  612. ;    2       KeyFlush
  613. ;    1       GetAltUser 
  614. ;
  615. ;
  616. ; ■ Functions used :
  617. ;
  618. ;    5       -
  619. ;    2       *
  620. ;    92      +
  621. ;    8       -
  622. ;    28      ==
  623. ;    15      <>
  624. ;    12      <
  625. ;    4       <=
  626. ;    4       >
  627. ;    9       >=
  628. ;    55      !
  629. ;    13      &&
  630. ;    5       ||
  631. ;    11      Len(
  632. ;    6       Lower()
  633. ;    27      Upper()
  634. ;    2       Mid()
  635. ;    5       Left()
  636. ;    1       Right()
  637. ;    2       Ferr()
  638. ;    11      Chr()
  639. ;    2       Asc()
  640. ;    2       InStr()
  641. ;    2       Random()
  642. ;    2       Date()
  643. ;    4       Time()
  644. ;    1       TimeAp()
  645. ;    1       YesChar()
  646. ;    3       Inkey()
  647. ;    15      String()
  648. ;    9       Mask_Pwd()
  649. ;    5       PCBDat()
  650. ;    11      PPEPath()
  651. ;    7       PcbNode()
  652. ;    5       ReadLine()
  653. ;    1       OnLocal()
  654. ;    3       GetToken()
  655. ;    1       Exist()
  656. ;    2       Carrier()
  657. ;    1       GrafMode()
  658. ;    1       CurColor()
  659. ;    2       U_RecNum()
  660. ;    2       ScrText()
  661. ;    2       ToTime()
  662. ;
  663. ;------------------------------------------------------------------------------
  664. ;
  665. ; Analysis flags : WRAdH
  666. ;
  667. ; W - Write user ■ 5
  668. ;     Program writes a user record. Although this may be normal for a
  669. ;     User Editor, it may also be a way to modify an account level.
  670. ;     ■ Search for : PUTUSER
  671. ;
  672. ; R - Read user ■ 5
  673. ;     User records are read, this may signify that someone wants to get
  674. ;     various informations about a user (for example his password), but
  675. ;     this may also be normal for a program accessing user records (for
  676. ;     example a User Editor)
  677. ;     ■ Search for : GETALTUSER
  678. ;
  679. ; A - Adjust online time remaining ■ 5
  680. ;     Program modify the amount of online time remaining, this may
  681. ;     be a way to bypass time limits
  682. ;     ■ Search for : ADJTIME
  683. ;
  684. ; d - Access PCBOARD.DAT ■ 2
  685. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  686. ;     for many PPE so they can find various informations on the system
  687. ;     (system paths, max number of lines in messages, ...) but it may also
  688. ;     be a way to gather vital informations.
  689. ;     ■ Search for : PCBDAT()
  690. ;
  691. ; H - Read Password or Password History ■ 5
  692. ;     Program is reading the user's password or last password history
  693. ;     This may be ok for a password manager, but it is very suspect. Check!
  694. ;     ■ Search for : U_PWDHIST, U_PWD
  695. ;
  696. ;------------------------------------------------------------------------------
  697. ;
  698. ; Postprocessing report
  699. ;
  700. ;    4       For/Next
  701. ;    1       While/EndWhile
  702. ;    44      If/Then or If/Then/Else
  703. ;    1       Select Case
  704. ;
  705. ;------------------------------------------------------------------------------
  706. ;                 AEGiS Corp - Break the routines, code against the machines!
  707. ;------------------------------------------------------------------------------
  708.