home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / T / TRASH106.ZIP / TRASH_2.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1993-12-25  |  16KB  |  756 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 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  INTEGER001
  20.     Integer  INTEGER002
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     Integer  INTEGER005
  24.     Integer  INTEGER006
  25.     Integer  INTEGER007
  26.     Integer  INTEGER008
  27.     Integer  INTEGER009
  28.     Integer  INTEGER010
  29.     Integer  INTEGER011
  30.     Integer  INTEGER012
  31.     Integer  INTEGER013
  32.     Integer  INTEGER014
  33.     String   STRING002
  34.     String   STRING003
  35.     String   STRING004
  36.     String   STRING005
  37.     String   STRING006
  38.     String   STRING007
  39.     String   STRING008
  40.     String   STRING009
  41.     String   STRING010
  42.     String   STRING011
  43.     String   STRING012
  44.     String   STRING013
  45.     String   STRING014
  46.     String   STRING015
  47.     String   STRING016
  48.     String   STRING017
  49.     String   STRING018
  50.     String   STRING019
  51.     String   STRING020
  52.     String   STRING021
  53.     String   STRING022
  54.     String   STRING023
  55.     String   STRING024
  56.     String   STRING025
  57.     String   STRING026
  58.     String   STRING027
  59.     String   STRING028
  60.     String   STRING029
  61.     String   STRING030
  62.     String   STRING031
  63.     String   STRING032
  64.     String   STRING033
  65.     String   STRING034
  66.     String   STRING035
  67.     String   STRING036
  68.     String   STRING037
  69.     String   STRING038
  70.     String   STRING039
  71.     String   STRING040
  72.     String   STRING041
  73.     String   STRING042
  74.     String   STRING043
  75.     String   STRING044
  76.     String   STRING045
  77.     String   STRING046
  78.     String   STRING047
  79.     String   STRING048
  80.     String   STRING049
  81.     String   STRING050
  82.     String   STRING051
  83.     String   STRING052
  84.     String   STRING053
  85.     String   STRING054
  86.     String   STRING055
  87.     String   STRING056
  88.  
  89. ;------------------------------------------------------------------------------
  90.  
  91.     If (Psa(2) == 0) Then
  92.         DispStr "@X0CThe Verification (PSA) not installed!  *Trash* terminated..."
  93.         Log "Verification (PSA) not installed! (Trash)", 0
  94.         Newline
  95.         Newline
  96.         Wait
  97.         End
  98.     Endif
  99.     If (Psa(4) == 0) Then
  100.         DispStr "@X0CThe Password (PSA) not installed!  *Trash* terminated..."
  101.         Log "Password (PSA) not installed! (Trash)", 0
  102.         Newline
  103.         Newline
  104.         Wait
  105.         End
  106.     Endif
  107.     If (Exist(PPEPath() + "trash.cfg")) Then
  108.         Goto LABEL001
  109.     Else
  110.         DispStr "@X0CThe TRASH.CFG configuration file missing!  *Trash* terminated..."
  111.         Log "The " + PPEPath() + "TRASH.CFG file is missing! (Trash)", 0
  112.         Newline
  113.         Newline
  114.         Wait
  115.         End
  116.     Endif
  117.     :LABEL001
  118.     If (Exist(PPEPath() + "prompts")) Then
  119.         Goto LABEL002
  120.     Else
  121.         DispStr "@X0CThe PROMPTS configuration file missing!  *Trash* terminated..."
  122.         Log "The " + PPEPath() + "PROMPTS file is missing! (Trash)", 0
  123.         Newline
  124.         Newline
  125.         Wait
  126.         End
  127.     Endif
  128.     :LABEL002
  129.     FOpen 1, PPEPath() + "trash.cfg", 0, 2
  130.     If (Ferr(1)) End
  131.     FGet 1, STRING033
  132.     FGet 1, STRING010
  133.     FGet 1, STRING011
  134.     FGet 1, STRING026
  135.     FGet 1, INTEGER003
  136.     FGet 1, STRING027
  137.     FGet 1, STRING030
  138.     FGet 1, STRING039
  139.     FGet 1, STRING040
  140.     FGet 1, STRING051
  141.     FGet 1, STRING052
  142.     FGet 1, STRING055
  143.     FGet 1, STRING056
  144.     FClose 1
  145.     STRING033 = Trim(STRING033, " ")
  146.     STRING010 = Trim(STRING010, " ")
  147.     STRING011 = Trim(STRING011, " ")
  148.     STRING026 = Trim(STRING026, " ")
  149.     INTEGER003 = Trim(INTEGER003, " ")
  150.     STRING027 = Trim(STRING027, " ")
  151.     STRING030 = Trim(STRING030, " ")
  152.     STRING039 = Trim(STRING039, " ")
  153.     STRING040 = Trim(STRING040, " ")
  154.     STRING051 = Trim(STRING051, " ")
  155.     STRING052 = Trim(STRING052, " ")
  156.     STRING055 = Trim(STRING055, " ")
  157.     STRING056 = Trim(STRING056, " ")
  158.     STRING033 = Upper(STRING033)
  159.     STRING011 = Upper(STRING011)
  160.     STRING026 = Upper(STRING026)
  161.     STRING027 = Upper(STRING027)
  162.     STRING030 = Upper(STRING030)
  163.     STRING039 = Upper(STRING039)
  164.     STRING040 = Upper(STRING040)
  165.     STRING051 = Upper(STRING051)
  166.     STRING052 = Upper(STRING052)
  167.     STRING055 = Upper(STRING055)
  168.     STRING056 = Upper(STRING056)
  169.     Delete STRING026 + "userdata." + String(PcbNode())
  170.     If (Exist(STRING027 + "tcan")) Then
  171.         Goto LABEL003
  172.     Else
  173.         DispStr "@X0CThe " + STRING027 + "TCAN file is missing!  *Trash* terminated..."
  174.         Log "The " + STRING027 + "TCAN file is missing! (Trash)", 0
  175.         Newline
  176.         Newline
  177.         Wait
  178.         End
  179.     Endif
  180.     :LABEL003
  181.     If (Exist(STRING027 + "pwdcan")) Then
  182.         Goto LABEL004
  183.     Else
  184.         DispStr "@X0CThe " + STRING027 + "PWDCAN file is missing!  *Trash* terminated..."
  185.         Log "The " + STRING027 + "PWDCAN file is missing! (Trash)", 0
  186.         Newline
  187.         Newline
  188.         Wait
  189.         End
  190.     Endif
  191.     :LABEL004
  192.     If (Exist(PPEPath() + "trashreg.exe")) Then
  193.         Goto LABEL005
  194.     Else
  195.         DispStr "@X0CThe " + PPEPath() + "TRASHREG.EXE file is missing!  *Trash* terminated..."
  196.         Log "The " + PPEPath() + "TRASHREG.EXE file is missing! (Trash)", 0
  197.         Newline
  198.         Newline
  199.         Wait
  200.         End
  201.     Endif
  202.     :LABEL005
  203.     If (Exist(PPEPath() + "trash.exe")) Then
  204.         Goto LABEL006
  205.     Else
  206.         DispStr "@X0CThe " + PPEPath() + "TRASH.EXE file is missing!  *Trash* terminated..."
  207.         Log "The " + PPEPath() + "TRASH.EXE file is missing! (Trash)", 0
  208.         Newline
  209.         Newline
  210.         Wait
  211.         End
  212.     Endif
  213.     :LABEL006
  214.     If (Exist(STRING040 + "trash.dbf")) Then
  215.         Goto LABEL007
  216.     Else
  217.         DispStr "@X0CThe " + STRING040 + "TRASH.DBF file is missing!  *Trash* terminated..."
  218.         Log "The " + STRING040 + "TRASH.DBF file is missing! (Trash)", 0
  219.         Newline
  220.         Newline
  221.         Wait
  222.         End
  223.     Endif
  224.     :LABEL007
  225.     If (Exist(STRING040 + "trash1.ndx")) Then
  226.         Goto LABEL008
  227.     Else
  228.         DispStr "@X0CThe " + STRING040 + "TRASH1.NDX file is missing!  *Trash* terminated..."
  229.         Log "The " + STRING040 + "TRASH1.NDX file is missing! (Trash)", 0
  230.         Newline
  231.         Newline
  232.         Wait
  233.         End
  234.     Endif
  235.     :LABEL008
  236.     If (Exist(PPEPath() + "prompts" + LangExt())) Then
  237.         FOpen 2, PPEPath() + "prompts" + LangExt(), 0, 2
  238.         If (Ferr(2)) End
  239.     Else
  240.         FOpen 2, PPEPath() + "prompts", 0, 2
  241.         If (Ferr(2)) End
  242.     Endif
  243.     FGet 2, STRING005
  244.     FGet 2, STRING006
  245.     FGet 2, STRING007
  246.     FGet 2, STRING008
  247.     FGet 2, STRING038
  248.     FGet 2, STRING041
  249.     FGet 2, STRING042
  250.     FGet 2, STRING043
  251.     FGet 2, STRING044
  252.     FGet 2, STRING045
  253.     FGet 2, STRING046
  254.     FGet 2, STRING047
  255.     FGet 2, STRING048
  256.     FGet 2, STRING049
  257.     FGet 2, STRING050
  258.     FClose 2
  259.     GetUser
  260.     If ((STRING051 <> "NONE") && (U_Sec <= STRING051)) STRING053 = " NEW"
  261.     If ((STRING052 <> "NONE") && (U_Sec >= STRING052)) STRING053 = " NEW"
  262.     STRING029 = "v1.06"
  263.     INTEGER010 = 34327
  264.     INTEGER014 = INTEGER010 + 90
  265.     INTEGER006 = 11898
  266.     INTEGER007 = 16304
  267.     INTEGER008 = 101896
  268.     INTEGER009 = 102120
  269.     INTEGER004 = 1
  270.     INTEGER002 = STRING010
  271.     STRING003 = PPEPath() + "trash.exe"
  272.     STRING037 = PPEPath() + "trashreg.exe"
  273.     STRING002 = STRING027 + "tcan " + STRING027 + "pwdcan " + STRING026 + "userdata." + String(PcbNode()) + " " + STRING040 + " trash"
  274.     STRING009 = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" + STRING011
  275.     STRING034 = "("
  276.     STRING035 = Chr(85) + Chr(78)
  277.     STRING036 = Chr(82) + Chr(69) + Chr(71) + Chr(73) + Chr(83) + Chr(84) + Chr(69) + Chr(82) + Chr(69) + Chr(68) + ")"
  278.     If ((STRING055 <> "NONE") && (U_Sec <= STRING055)) Goto LABEL011
  279.     If ((STRING056 <> "NONE") && (U_Sec >= STRING056)) Goto LABEL011
  280.     If (Exist(PPEPath() + "trash.key")) Then
  281.         If (Exist(PPEPath() + "w_dummy." + String(PcbNode()))) Cls
  282.         STRING031 = Chr(55) + Chr(56) + Chr(53) + Chr(55)
  283.         STRING032 = PPEPath() + "trash.key"
  284.         Shell 0, INTEGER001, STRING037, STRING031 + " " + STRING032 + " " + STRING033
  285.         If (INTEGER001 == 1) INTEGER011 = FileInf(PPEPath() + "trash.exe", 2)
  286.         If ((INTEGER001 == 1) && !(INTEGER010 == INTEGER011)) INTEGER004 = 1
  287.         If ((INTEGER001 == 1) && !(INTEGER010 == INTEGER011)) Goto LABEL009
  288.         If (INTEGER001 == 1) INTEGER012 = FileInf(PPEPath() + "trash.ppe", 2)
  289.         If ((INTEGER001 == 1) && !(INTEGER010 == INTEGER012)) INTEGER004 = 1
  290.         If ((INTEGER001 == 1) && !(INTEGER010 == INTEGER012)) Goto LABEL009
  291.         If (INTEGER001 == 1) INTEGER013 = FileInf(PPEPath() + "trashreg.exe", 2)
  292.         If ((INTEGER001 == 1) && !(INTEGER010 == INTEGER013)) INTEGER004 = 1
  293.         If ((INTEGER001 == 1) && !(INTEGER010 == INTEGER013)) Goto LABEL009
  294.         If (INTEGER001 == 1) INTEGER005 = FileInf(PPEPath() + "trashreg.exe", 4)
  295.         If ((INTEGER001 == 1) && !(INTEGER005 == INTEGER006)) INTEGER004 = 1
  296.         If ((INTEGER001 == 1) && !(INTEGER005 == INTEGER006)) Goto LABEL009
  297.         If (INTEGER001 == 1) INTEGER005 = FileInf(PPEPath() + "trash.ppe", 4)
  298.         If ((INTEGER001 == 1) && !(INTEGER005 == INTEGER007)) INTEGER004 = 1
  299.         If ((INTEGER001 == 1) && !(INTEGER005 == INTEGER007)) Goto LABEL009
  300.         If (INTEGER001 == 1) INTEGER005 = FileInf(PPEPath() + "trash.exe", 4)
  301.         If ((INTEGER001 == 1) && (INTEGER005 == INTEGER008)) INTEGER004 = 0
  302.         If (INTEGER001 == 1) INTEGER005 = FileInf(PPEPath() + "trash.exe", 4)
  303.         If ((INTEGER001 == 1) && (INTEGER005 == INTEGER009)) INTEGER004 = 0
  304.         If ((INTEGER001 == 1) && (INTEGER004 == 0)) STRING029 = STRING029 + " " + STRING034 + STRING036
  305.     Endif
  306.     :LABEL009
  307.     If (INTEGER004 == 1) STRING029 = STRING029 + " " + STRING034 + STRING035 + STRING036
  308.     Cls
  309.     DispStr "@X0A*Trash* (C) " + STRING029 + " - trashcan scanner...@X07"
  310.     Newline
  311.     Newline
  312.     If (INTEGER004 == 1) Then
  313.         INTEGER011 = Date()
  314.         If (INTEGER011 >= INTEGER014) Goto LABEL010
  315.         SaveScrn
  316.         Print Chr(64) + Chr(88) + Chr(52) + Chr(69)
  317.         SPrint " " + Chr(80) + Chr(108) + Chr(101) + Chr(97) + Chr(115) + Chr(101) + " " + Chr(99) + Chr(111) + Chr(110) + Chr(115) + Chr(105) + Chr(100) + Chr(101) + Chr(114) + " " + Chr(114) + Chr(101) + Chr(103) + Chr(105) + Chr(115) + Chr(116) + Chr(101) + Chr(114) + " " + Chr(116) + Chr(104) + Chr(105) + Chr(115) + " " + Chr(112) + Chr(114) + Chr(111) + Chr(103) + Chr(114) + Chr(97) + Chr(109) + " " + Chr(105) + Chr(102) + " " + Chr(121) + Chr(111) + Chr(117) + " " + Chr(108) + Chr(105) + Chr(107) + Chr(101) + " " + Chr(105) + Chr(116) + Chr(63) + "  " + Chr(84) + Chr(114) + Chr(97) + Chr(115) + Chr(104) + " " + Chr(38) + " " + Chr(83) + Chr(109) + Chr(97) + Chr(114) + Chr(116) + Chr(83) + Chr(101) + Chr(99) + " " + Chr(40) + Chr(67) + Chr(41) + " "
  318.         SPrintLn 
  319.         SPrint " " + Chr(105) + Chr(115) + " " + Chr(108) + Chr(111) + Chr(119) + " " + Chr(112) + Chr(114) + Chr(105) + Chr(99) + Chr(101) + Chr(100) + " " + Chr(97) + Chr(116) + " " + Chr(111) + Chr(110) + Chr(108) + Chr(121) + " " + Chr(36) + Chr(55) + " " + Chr(85) + Chr(83) + " " + Chr(100) + Chr(111) + Chr(108) + Chr(108) + Chr(97) + Chr(114) + " " + Chr(101) + Chr(97) + Chr(99) + Chr(104) + " " + Chr(111) + Chr(114) + " " + Chr(36) + Chr(49) + Chr(48) + " " + Chr(85) + Chr(83) + " " + Chr(100) + Chr(111) + Chr(108) + Chr(108) + Chr(97) + Chr(114) + " " + Chr(102) + Chr(111) + Chr(114) + " " + Chr(98) + Chr(111) + Chr(116) + Chr(104) + Chr(46) + "  " + Chr(84) + Chr(104) + Chr(97) + Chr(110) + Chr(107) + Chr(115) + Chr(33) + " "
  320.         Print +Chr(64) + Chr(88) + Chr(48) + Chr(55)
  321.         Delay 75
  322.         RestScrn
  323.         If (INTEGER011 >= INTEGER014) Then
  324.             :LABEL010
  325.             Print Chr(64) + Chr(88) + Chr(52) + Chr(69)
  326.             SPrintLn " " + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + " "
  327.             SPrintLn "  " + Chr(84) + Chr(104) + Chr(101) + " " + Chr(101) + Chr(118) + Chr(97) + Chr(108) + Chr(117) + Chr(97) + Chr(116) + Chr(105) + Chr(111) + Chr(110) + " " + Chr(112) + Chr(101) + Chr(114) + Chr(105) + Chr(111) + Chr(100) + " " + Chr(104) + Chr(97) + Chr(115) + " " + Chr(101) + Chr(120) + Chr(112) + Chr(105) + Chr(114) + Chr(101) + Chr(100) + " " + Chr(45) + " " + Chr(112) + Chr(108) + Chr(101) + Chr(97) + Chr(115) + Chr(101) + " " + Chr(114) + Chr(101) + Chr(103) + Chr(105) + Chr(115) + Chr(116) + Chr(101) + Chr(114) + Chr(33) + "  "
  328.             SPrintLn " " + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + Chr(42) + " "
  329.             Print +Chr(64) + Chr(88) + Chr(48) + Chr(55)
  330.             Beep
  331.             Newline
  332.             Delay 75
  333.             If (Exist(PPEPath() + "w_dummy." + String(PcbNode()))) Cls
  334.             If (Exist(PPEPath() + "w_dummy." + String(PcbNode()))) PrintLn "@X0C" + STRING050
  335.             If (Exist(PPEPath() + "w_dummy." + String(PcbNode()))) Newline
  336.             :LABEL011
  337.             InputStr STRING005, STRING004, 14, 12, STRING009, 1 + 8
  338.             ShowOff
  339.             KbdStuff STRING004 + Chr(13)
  340.             ShowOn
  341.             If (Exist(PPEPath() + "w_dummy." + String(PcbNode()))) Newline
  342.             Newline
  343.             End
  344.         Endif
  345.     Endif
  346.     If (INTEGER011 >= INTEGER014) End
  347.     If (INTEGER003 <= 4) INTEGER003 = 4
  348.     If (INTEGER003 >= 12) INTEGER003 = 12
  349.     If (Psa(1) == 1) STRING013 = Trim(U_Alias, " ")
  350.     STRING012 = Trim(U_Name(), " ")
  351.     STRING014 = Trim(U_City, " ")
  352.     STRING028 = Trim(U_Pwd, " ")
  353.     STRING015 = Trim(U_Addr(0), " ")
  354.     STRING016 = Trim(U_Addr(1), " ")
  355.     STRING017 = Trim(U_Addr(2), " ")
  356.     STRING018 = Trim(U_Addr(3), " ")
  357.     STRING019 = Trim(U_Addr(4), " ")
  358.     STRING020 = Trim(U_Addr(5), " ")
  359.     STRING021 = Trim(U_HVPhone, " ")
  360.     STRING022 = Trim(U_BDPhone, " ")
  361.     STRING023 = Trim(U_PwdHist(1), " ")
  362.     STRING024 = Trim(U_PwdHist(2), " ")
  363.     STRING025 = Trim(U_PwdHist(3), " ")
  364.     STRING015 = Upper(STRING015)
  365.     STRING016 = Upper(STRING016)
  366.     STRING017 = Upper(STRING017)
  367.     STRING018 = Upper(STRING018)
  368.     STRING020 = Upper(STRING020)
  369.     :LABEL012
  370.     If (INTEGER011 >= INTEGER014) End
  371.     STRING004 = ""
  372.     If (INTEGER002 < STRING010) Cls
  373.     If (INTEGER002 == STRING010) Log "*Trash* " + STRING029 + " - trashcan scanner...", 0
  374.     If (INTEGER002 == STRING010) DispFile PPEPath() + "info1pwd", 1 + 4
  375.     If (INTEGER002 == STRING010) Newline
  376.     DispFile PPEPath() + "info2pwd", 1 + 4
  377.     Newline
  378.     If (Exist(PPEPath() + "w_dummy." + String(PcbNode()))) Then
  379.         DispStr "@X0C" + STRING050
  380.         Newline
  381.         Newline
  382.         InputStr STRING005, STRING004, 14, 12, STRING009, 1 + 8
  383.         If (STRING004 <> "") Cls
  384.         If (STRING004 <> "") Goto LABEL013
  385.         ShowOff
  386.         KbdStuff Chr(13)
  387.         ShowOn
  388.         Newline
  389.         Newline
  390.         Delete STRING026 + "userdata." + String(PcbNode())
  391.         End
  392.     Endif
  393.     If (U_Pwd == "") Then
  394.         InputStr STRING005, STRING004, 14, 12, STRING009, 1 + 8
  395.     Else
  396.         InputStr STRING006, STRING004, 14, 12, STRING009, 1 + 8
  397.     Endif
  398.     Cls
  399.     Newline
  400.     STRING004 = Trim(STRING004, " ")
  401.     If (STRING004 == " ") Goto LABEL014
  402.     If (STRING004 == "") Then
  403.         Log "Invalid password input, retry  : <ENTER>", 0
  404.         Dec INTEGER002
  405.         Newline
  406.         PrintLn "@X0C" + STRING008
  407.         Newline
  408.         Wait
  409.         If (INTEGER002 > 0) Goto LABEL012
  410.     Else
  411.         :LABEL013
  412.         If (INTEGER011 >= INTEGER014) End
  413.         If (STRING004 == "AUTO") Goto LABEL025
  414.         If (Len(STRING004) < INTEGER003) Then
  415.             Newline
  416.             PrintLn "@X0C" + STRING007
  417.             Log "Password is less than " + String(INTEGER003) + " chrs   : (" + STRING004 + ")", 0
  418.             Newline
  419.             Wait
  420.             Dec INTEGER002
  421.             If (INTEGER002 > 0) Goto LABEL012
  422.         Else
  423.             FCreate 1, STRING026 + "userdata." + String(PcbNode()), 1, 2
  424.             If (Ferr(1)) End
  425.             FPutLn 1, STRING012
  426.             FPutLn 1, STRING013
  427.             FPutLn 1, STRING028
  428.             FPutLn 1, STRING014
  429.             FPutLn 1, STRING015
  430.             FPutLn 1, STRING016
  431.             FPutLn 1, STRING017
  432.             FPutLn 1, STRING018
  433.             FPutLn 1, STRING019
  434.             FPutLn 1, STRING020
  435.             FPutLn 1, STRING021
  436.             FPutLn 1, STRING022
  437.             FPutLn 1, STRING023
  438.             FPutLn 1, STRING024
  439.             FPutLn 1, STRING025
  440.             FPutLn 1, STRING004
  441.             FClose 1
  442.             Shell 0, INTEGER001, STRING003, STRING002 + STRING053
  443.             If (INTEGER001 == 10) Goto LABEL014
  444.             If (INTEGER001 == 9) Goto LABEL015
  445.             If (INTEGER001 == 8) Goto LABEL016
  446.             If (INTEGER001 == 7) Goto LABEL017
  447.             If (INTEGER001 == 6) Goto LABEL018
  448.             If (INTEGER001 == 5) Goto LABEL019
  449.             If (INTEGER001 == 4) Goto LABEL020
  450.             If (INTEGER001 == 3) Goto LABEL021
  451.             If (INTEGER001 == 2) Goto LABEL022
  452.             If (INTEGER001 == 1) Goto LABEL023
  453.             If (INTEGER001 == 0) Goto LABEL026
  454.             :LABEL014
  455.             If (INTEGER011 >= INTEGER014) End
  456.             Cls
  457.             Delete STRING026 + "userdata." + String(PcbNode())
  458.             Newline
  459.             DispStr "@X0CPlease tell SysOp that TRASH is *NOT* configured okay!"
  460.             Newline
  461.             Newline
  462.             Wait
  463.             DispStr "@X0CThe program is now terminated."
  464.             Newline
  465.             Newline
  466.             Wait
  467.             Log "Something went *WRONG* with Trash! Check it up...", 0
  468.             Log "Don't use SPACE as a valid input on Line 3 in TRASH.CFG", 0
  469.             End
  470.             :LABEL015
  471.             If (INTEGER011 >= INTEGER014) End
  472.             Cls
  473.             Log "HISTORY - rev old pwd in string: (" + STRING004 + ")", 0
  474.             If (INTEGER002 > 1) Then
  475.                 PrintLn "@X0C" + STRING041
  476.                 Dec INTEGER002
  477.                 Newline
  478.                 Wait
  479.                 Goto LABEL012
  480.             Else
  481.                 Goto LABEL024
  482.             Endif
  483.             :LABEL016
  484.             If (INTEGER011 >= INTEGER014) End
  485.             Cls
  486.             Log "HISTORY - old pwd in string    : (" + STRING004 + ")", 0
  487.             If (INTEGER002 > 1) Then
  488.                 PrintLn "@X0C" + STRING042
  489.                 Dec INTEGER002
  490.                 Newline
  491.                 Wait
  492.                 Goto LABEL012
  493.             Else
  494.                 Goto LABEL024
  495.             Endif
  496.             :LABEL017
  497.             If (INTEGER011 >= INTEGER014) End
  498.             Cls
  499.             Log "DUPLICATE word used in string  : (" + STRING004 + ")", 0
  500.             If (INTEGER002 > 1) Then
  501.                 PrintLn "@X0C" + STRING043
  502.                 Dec INTEGER002
  503.                 Newline
  504.                 Wait
  505.                 Goto LABEL012
  506.             Else
  507.                 Goto LABEL024
  508.             Endif
  509.             :LABEL018
  510.             If (INTEGER011 >= INTEGER014) End
  511.             Cls
  512.             Log "USERDATA - rev wildcard 4 chrs : (" + STRING004 + ")", 0
  513.             If (INTEGER002 > 1) Then
  514.                 PrintLn "@X0C" + STRING044
  515.                 Dec INTEGER002
  516.                 Newline
  517.                 Wait
  518.                 Goto LABEL012
  519.             Else
  520.                 Goto LABEL024
  521.             Endif
  522.             :LABEL019
  523.             If (INTEGER011 >= INTEGER014) End
  524.             Cls
  525.             Log "USERDATA - wildcard 3 chrs     : (" + STRING004 + ")", 0
  526.             If (INTEGER002 > 1) Then
  527.                 PrintLn "@X0C" + STRING045
  528.                 Dec INTEGER002
  529.                 Newline
  530.                 Wait
  531.                 Goto LABEL012
  532.             Else
  533.                 Goto LABEL024
  534.             Endif
  535.             :LABEL020
  536.             If (INTEGER011 >= INTEGER014) End
  537.             Cls
  538.             Log "PWDCAN - rev wildcard string   : (" + STRING004 + ")", 0
  539.             If (INTEGER002 > 1) Then
  540.                 PrintLn "@X0C" + STRING046
  541.                 Dec INTEGER002
  542.                 Newline
  543.                 Wait
  544.                 Goto LABEL012
  545.             Else
  546.                 Goto LABEL024
  547.             Endif
  548.             :LABEL021
  549.             If (INTEGER011 >= INTEGER014) End
  550.             Cls
  551.             Log "PWDCAN - wildcard string       : (" + STRING004 + ")", 0
  552.             If (INTEGER002 > 1) Then
  553.                 PrintLn "@X0C" + STRING047
  554.                 Dec INTEGER002
  555.                 Newline
  556.                 Wait
  557.                 Goto LABEL012
  558.             Else
  559.                 Goto LABEL024
  560.             Endif
  561.             :LABEL022
  562.             If (INTEGER011 >= INTEGER014) End
  563.             Cls
  564.             Log "TCAN - rev exact string match  : (" + STRING004 + ")", 0
  565.             If (INTEGER002 > 1) Then
  566.                 PrintLn "@X0C" + STRING048
  567.                 Dec INTEGER002
  568.                 Newline
  569.                 Wait
  570.                 Goto LABEL012
  571.             Else
  572.                 Goto LABEL024
  573.             Endif
  574.             :LABEL023
  575.             If (INTEGER011 >= INTEGER014) End
  576.             Cls
  577.             Log "TCAN - exact string match found: (" + STRING004 + ")", 0
  578.             If (INTEGER002 > 1) Then
  579.                 PrintLn "@X0C" + STRING049
  580.                 Dec INTEGER002
  581.                 Newline
  582.                 Wait
  583.                 Goto LABEL012
  584.             Else
  585.                 Goto LABEL024
  586.             Endif
  587.         Endif
  588.     Endif
  589.     :LABEL024
  590.     If (INTEGER011 >= INTEGER014) End
  591.     If (STRING039 == "NO") Then
  592.         DispStr "@X0CTo many failing password attempts - automatic logoff!"
  593.         Newline
  594.         Log "To many password attempts, logged off!", 0
  595.         Delete STRING026 + "userdata." + String(PcbNode())
  596.         Hangup
  597.         End
  598.     Endif
  599.     :LABEL025
  600.     FCreate 1, STRING026 + "userdata." + String(PcbNode()), 1, 2
  601.     If (Ferr(1)) End
  602.     FPutLn 1, STRING012
  603.     FPutLn 1, STRING013
  604.     FPutLn 1, STRING028
  605.     FPutLn 1, STRING014
  606.     FPutLn 1, STRING015
  607.     FPutLn 1, STRING016
  608.     FPutLn 1, STRING017
  609.     FPutLn 1, STRING018
  610.     FPutLn 1, STRING019
  611.     FPutLn 1, STRING020
  612.     FPutLn 1, STRING021
  613.     FPutLn 1, STRING022
  614.     FPutLn 1, STRING023
  615.     FPutLn 1, STRING024
  616.     FPutLn 1, STRING025
  617.     FPutLn 1, STRING004
  618.     FClose 1
  619.     Cls
  620.     ShowOff
  621.     If (INTEGER011 >= INTEGER014) End
  622.     If (STRING004 == "AUTO") STRING054 = STRING004
  623.     Shell 0, INTEGER001, STRING003, STRING002 + " " + "pwd=" + String(INTEGER003) + STRING053
  624.     FOpen 1, PPEPath() + "new.pwd", 0, 2
  625.     If (Ferr(1)) End
  626.     FGet 1, STRING004
  627.     FClose 1
  628.     Delete PPEPath() + "new.pwd"
  629.     Delete STRING026 + "userdata." + String(PcbNode())
  630.     KbdStuff STRING004 + Chr(13)
  631.     STRING004 = Lower(STRING004)
  632.     If (STRING030 == "YES") Then
  633.         Log "Auto-Generated pwd by Trash was: (" + STRING004 + ")", 0
  634.     Else
  635.         Log "Trash made a Auto-Generated password.", 0
  636.     Endif
  637.     ShowOn
  638.     If (!(STRING054 == "AUTO")) DispFile PPEPath() + "autopwd", 1 + 4
  639.     If (!(STRING054 == "AUTO")) Newline
  640.     DispStr "@X0C" + STRING038 + ": " + "@X4E " + STRING004 + "@X4E "
  641.     If (U_Pwd <> "") Newline
  642.     Newline
  643.     End
  644.     :LABEL026
  645.     If (INTEGER011 >= INTEGER014) End
  646.     If (STRING030 == "YES") Then
  647.         Log "Accepted password by Trash was : (" + STRING004 + ")", 0
  648.     Else
  649.         Log "The user password was accepted by Trash.", 0
  650.     Endif
  651.     Delete STRING026 + "userdata." + String(PcbNode())
  652.     KbdStuff STRING004
  653.     End
  654.  
  655. ;------------------------------------------------------------------------------
  656. ;
  657. ; Usage report (before postprocessing)
  658. ;
  659. ; ■ Statements used :
  660. ;
  661. ;    38      End
  662. ;    17      Cls
  663. ;    23      Wait
  664. ;    103     Goto 
  665. ;    87      Let 
  666. ;    4       Print 
  667. ;    12      PrintLn 
  668. ;    111     If 
  669. ;    3       DispFile 
  670. ;    2       FCreate 
  671. ;    4       FOpen 
  672. ;    5       FClose 
  673. ;    29      FGet 
  674. ;    32      FPutLn 
  675. ;    1       Hangup
  676. ;    1       GetUser
  677. ;    7       Delete 
  678. ;    29      Log 
  679. ;    4       InputStr 
  680. ;    2       Delay 
  681. ;    11      Dec 
  682. ;    55      Newline
  683. ;    3       Shell 
  684. ;    1       Beep
  685. ;    4       KbdStuff 
  686. ;    16      DispStr 
  687. ;    1       SaveScrn
  688. ;    1       RestScrn
  689. ;    2       SPrint 
  690. ;    4       SPrintLn 
  691. ;    3       ShowOn
  692. ;    3       ShowOff
  693. ;
  694. ;
  695. ; ■ Functions used :
  696. ;
  697. ;    2       +
  698. ;    509     +
  699. ;    62      ==
  700. ;    7       <>
  701. ;    2       <
  702. ;    3       <=
  703. ;    11      >
  704. ;    21      >=
  705. ;    42      !
  706. ;    17      &&
  707. ;    1       Len(
  708. ;    1       Lower()
  709. ;    16      Upper()
  710. ;    6       Ferr()
  711. ;    309     Chr()
  712. ;    29      Trim()
  713. ;    1       Date()
  714. ;    1       U_Name()
  715. ;    17      String()
  716. ;    36      PPEPath()
  717. ;    15      PcbNode()
  718. ;    16      Exist()
  719. ;    2       LangExt()
  720. ;    3       U_PwdHist()
  721. ;    3       Psa()
  722. ;    7       FileInf()
  723. ;
  724. ;------------------------------------------------------------------------------
  725. ;
  726. ; Analysis flags : BSH
  727. ;
  728. ; B - Brute hangup ■ 1
  729. ;     Program hangup without notification. This may be a good way to
  730. ;     disconnect a user, but if used randomly, may be very nasty
  731. ;     ■ Search for : HANGUP, DTROFF
  732. ;
  733. ; S - Shell to DOS ■ 5
  734. ;     This may be normal if the PPE need to execute an external command,
  735. ;     but may be actually anything... nasty (formating HD, rebooting,...)
  736. ;     or usefull (sorting, maintenance,...). Check!
  737. ;     ■ Search for : SHELL
  738. ;
  739. ; H - Read Password or Password History ■ 5
  740. ;     Program is reading the user's password or last password history
  741. ;     This may be ok for a password manager, but it is very suspect. Check!
  742. ;     ■ Search for : U_PWDHIST, U_PWD
  743. ;
  744. ;------------------------------------------------------------------------------
  745. ;
  746. ; Postprocessing report
  747. ;
  748. ;    0       For/Next
  749. ;    0       While/EndWhile
  750. ;    30      If/Then or If/Then/Else
  751. ;    0       Select Case
  752. ;
  753. ;------------------------------------------------------------------------------
  754. ;                 AEGiS Corp - Break the routines, code against the machines!
  755. ;------------------------------------------------------------------------------
  756.