home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PCBOARD / WIPEV073.ZIP / WIPE.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-03-18  |  31KB  |  1,356 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.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     Boolean  BOOLEAN005
  24.     Boolean  BOOLEAN006
  25.     Boolean  BOOLEAN007
  26.     Boolean  BOOLEAN008
  27.     Boolean  BOOLEAN009
  28.     Boolean  BOOLEAN010
  29.     Boolean  BOOLEAN011
  30.     Boolean  BOOLEAN012
  31.     Boolean  TBOOLEAN013(49)
  32.     Boolean  BOOLEAN014
  33.     Boolean  BOOLEAN015
  34.     Boolean  TBOOLEAN016(79)
  35.     Boolean  BOOLEAN017
  36.     Boolean  BOOLEAN018
  37.     DWord    DWORD001
  38.     Integer  INTEGER001
  39.     Integer  INTEGER002
  40.     Integer  INTEGER003
  41.     Integer  INTEGER004
  42.     Integer  INTEGER005
  43.     Integer  INTEGER006
  44.     Integer  INTEGER007
  45.     Integer  INTEGER008
  46.     Integer  INTEGER009
  47.     Integer  INTEGER010
  48.     Integer  INTEGER011
  49.     Integer  INTEGER012
  50.     Integer  INTEGER013
  51.     Integer  INTEGER014
  52.     Integer  INTEGER015
  53.     Integer  INTEGER016
  54.     Integer  INTEGER017
  55.     Integer  INTEGER018
  56.     Integer  INTEGER019
  57.     Integer  INTEGER020
  58.     Integer  INTEGER021
  59.     Integer  INTEGER022
  60.     Integer  INTEGER023
  61.     Integer  INTEGER024
  62.     String   STRING001
  63.     String   STRING002
  64.     String   STRING003
  65.     String   STRING004
  66.     String   STRING005
  67.     String   STRING006
  68.     String   STRING007
  69.     String   TSTRING008(49,2)
  70.     String   STRING009
  71.     String   STRING010
  72.     String   STRING011
  73.     String   STRING012
  74.     String   STRING013
  75.     String   TSTRING014(10)
  76.     String   TSTRING015(79)
  77.     String   TSTRING016(79)
  78.     String   STRING017
  79.     String   STRING018
  80.     String   STRING019
  81.     String   STRING020
  82.     String   STRING021
  83.     String   STRING022
  84.     String   TSTRING023(5)
  85.     String   STRING024
  86.     String   STRING025
  87.     String   STRING026
  88.     String   STRING027
  89.     String   STRING028
  90.     String   STRING029
  91.     String   STRING030
  92.     String   STRING031
  93.     String   STRING032
  94.     String   TSTRING033(7)
  95.     String   STRING034
  96.     String   STRING035
  97.     String   STRING036
  98.     String   STRING037
  99.     String   STRING038
  100.     String   STRING039
  101.     String   STRING040
  102.     String   STRING041
  103.     String   STRING042
  104.  
  105. ;------------------------------------------------------------------------------
  106.  
  107.     STRING001 = "0.73ß"
  108.     STRING002 = "03/18/93"
  109.     STRING029 = "(C) Thrust Brothers"
  110.     STRING028 = " - Legends will never die..."
  111.     WrUNet PcbNode(), "Q", UN_Name(), UN_City(), "Using: @X03Wipe V" + STRING001, " "
  112.     Goto LABEL073
  113.     :LABEL001
  114.     STRING007 = ReadLine(PCBDat(), 31)
  115.     INTEGER006 = ReadLine(PCBDat(), 108)
  116.     For INTEGER011 = 0 To INTEGER006
  117.         TSTRING008(INTEGER011, 0) = ReadLine(STRING007, INTEGER007)
  118.         TSTRING008(INTEGER011, 1) = ReadLine(STRING007, INTEGER007 + INTEGER005)
  119.         TSTRING008(INTEGER011, 2) = ReadLine(STRING007, INTEGER007 + INTEGER005 + 1)
  120.         INTEGER007 = INTEGER007 + INTEGER004
  121.     Next
  122.     FClose -1
  123.     Return
  124.     :LABEL002
  125.     If (OnLocal()) Goto LABEL003
  126.     STRING032 = ""
  127.     For INTEGER020 = 1 To Len(STRING031)
  128.         STRING032 = STRING032 + Chr(Asc(Mid(STRING031, INTEGER020, 1)) + 30)
  129.     Next
  130.     STRING031 = STRING032
  131.     STRING032 = ""
  132.     For INTEGER020 = 1 To Len(STRING030)
  133.         STRING032 = STRING032 + Chr(Asc(Mid(STRING030, INTEGER020, 1)) + 30)
  134.     Next
  135.     STRING030 = STRING032
  136.     :LABEL003
  137.     Return
  138.     :LABEL004
  139.     Newline
  140.     If (BOOLEAN002 == 1) Then
  141.         PrintLn "@X03WIPE @X0Btries to update current DIR now. Please wait!"
  142.         STRING003 = "dirmod"
  143.         STRING004 = TSTRING008(CurConf(), 1)
  144.         Shell 1, INTEGER001, STRING003, STRING004
  145.         PrintLn "@X03WIPE @X0Bwill adjust bytes as soon as aflicted user(s) relogon(s)"
  146.         Newline
  147.     Endif
  148.     Print "@X03WIPE [PPE2] V", STRING001, " ", STRING002, " @X09"
  149.     MPrintLn STRING031, STRING030
  150.     SPrintLn STRING029, STRING028
  151.     If (OnLocal()) Goto LABEL005
  152.     Log "@X03WIPE [PPE2] V" + STRING001 + " @X09" + STRING029 + " - User: " + U_Name(), 1
  153.     :LABEL005
  154.     End
  155.     :LABEL006
  156.     INTEGER021 = ""
  157.     Newline
  158.     PrintLn "    @X0EFollowing @X0BConferences@X0E available as destination:"
  159.     Newline
  160.     For INTEGER016 = 0 To INTEGER006 - 1
  161.         TBOOLEAN013(INTEGER016) = 0
  162.         If (INTEGER016 == CurConf()) Continue
  163.         If (TSTRING008(INTEGER016, 1) == "") Continue
  164.         If (U_InConf(U_RecNum(UN_Name()), INTEGER016) == 1) Then
  165.             TBOOLEAN013(INTEGER016) = 1
  166.             PrintLn "    @X0EConference @X03", Right(Space(1) + String(INTEGER016), 2), "@X0E: @X0B", TSTRING008(INTEGER016, 0)
  167.         Endif
  168.     Next
  169.     Newline
  170.     While (INTEGER021 == "") Do
  171.         InputStr "    @X0EEnter @X03# @X0Eof destination Conference: ", INTEGER021, 9, 2, Mask_Num(), 32 + 2
  172.         If (INTEGER021 == "") Then
  173.             Break
  174.         Endif
  175.         If ((TBOOLEAN013(INTEGER021) == 1) && (INTEGER021 < INTEGER006)) Then
  176.             Break
  177.         Endif
  178.         If (INTEGER021 > INTEGER006 - 1) Then
  179.             INTEGER021 = ""
  180.             Continue
  181.         Endif
  182.         If (TBOOLEAN013(INTEGER021) == 0) Then
  183.             INTEGER021 = ""
  184.             Continue
  185.         Endif
  186.     EndWhile
  187.     If (INTEGER021 == "") Then
  188.         Return
  189.     Endif
  190.     PrintLn "    @X0BMoving @X0E", Right(Space(1) + String(INTEGER009 + 1), 2), " @X0BFile(s) from: @X0E", TSTRING008(CurConf(), 0), " @X0Bto: @X0E", TSTRING008(INTEGER021, 0)
  191.     Newline
  192.     STRING017 = "n"
  193.     InputYN "@XC3MOVE@X0E it (no return!)", STRING017, 3
  194.     FreshLine
  195.     If (Upper(STRING017) == "N") Then
  196.         Return
  197.     Endif
  198.     StartDisp 1
  199.     Newline
  200.     For INTEGER016 = 0 To INTEGER009
  201.         PrintLn "@X03MOVE @X0Bis moving @X0E", RTrim(Left(TSTRING015(INTEGER016), 12), " "), " @X0Bfrom: @X0E", TSTRING008(CurConf(), 0), " @X0Bto: @X0E", TSTRING008(INTEGER021, 0)
  202.         STRING003 = PPEPath() + "move.exe"
  203.         STRING004 = TSTRING008(CurConf(), 2) + RTrim(Left(TSTRING015(INTEGER016), 12), " ") + " " + TSTRING008(INTEGER021, 2) + " /O"
  204.         Shell 1, INTEGER001, STRING003, STRING004
  205.         If (Exist(PPEPath() + PPEName() + ".mov")) Goto LABEL007
  206.         FAppend 2, PPEPath() + PPEName() + ".mov", 2, 0
  207.         FPutLn 2, "Source:       │Filename:   │To Dest:      │Movedate:│ Moved by:"
  208.         FPutLn 2, "──────────────┼────────────┼──────────────┼─────────┼──────────────────────────"
  209.         FClose 2
  210.         :LABEL007
  211.         FAppend 2, PPEPath() + PPEName() + ".mov", 2, 0
  212.         FPut 2, Left(TSTRING008(CurConf(), 0) + Space(14), 14)
  213.         FPut 2, "│"
  214.         FPut 2, Left(TSTRING015(INTEGER016), 12)
  215.         FPut 2, "│"
  216.         FPut 2, Left(TSTRING008(INTEGER021, 0) + Space(14), 14)
  217.         FPut 2, "│ "
  218.         FPut 2, Date()
  219.         FPut 2, "│ "
  220.         FPut 2, Left(UN_Name() + Space(25), 25)
  221.         FPut 2, Chr(13) + Chr(10)
  222.         FClose 2
  223.         FAppend 2, TSTRING008(CurConf(), 1) + ".MOD", 2, 0
  224.         FPut 2, " |" + TSTRING015(INTEGER016) + Chr(13) + Chr(10)
  225.         FClose 2
  226.     Next
  227.     BOOLEAN002 = 1
  228.     STRING018 = "Move to Conf: " + TSTRING008(INTEGER021, 0) + " by System."
  229.     FAppend 2, TSTRING008(CurConf(), 1) + ".MOD", 2, 0
  230.     FPut 2, "                               | " + STRING018 + Chr(13) + Chr(10)
  231.     If (BOOLEAN011 == 1) Then
  232.         FPut 2, "  |" + Chr(13) + Chr(10)
  233.     Endif
  234.     FClose 2
  235.     FAppend 2, TSTRING008(INTEGER021, 1) + ".ADD", 2, 0
  236.     For INTEGER016 = 0 To INTEGER009
  237.         FPut 2, Left(TSTRING015(INTEGER016), 23)
  238.         FPut 2, Date()
  239.         FPutLn 2, Mid(TSTRING015(INTEGER016), 32, Len(TSTRING015(INTEGER016)) - 1)
  240.     Next
  241.     For INTEGER016 = INTEGER009 + 1 To INTEGER008 - 1
  242.         FPutLn 2, TSTRING015(INTEGER016)
  243.     Next
  244.     FClose 2
  245.     Newline
  246.     PrintLn "@X03MOVE @X0Bis adding changes to: @X0E", TSTRING008(INTEGER021, 0)
  247.     STRING003 = "dirmod.exe"
  248.     STRING004 = TSTRING008(INTEGER021, 1)
  249.     Shell 1, INTEGER001, STRING003, STRING004
  250.     Newline
  251.     StartDisp 0
  252.     Return
  253.     :LABEL008
  254.     Gosub LABEL009
  255.     If (BOOLEAN010 == 1) Then
  256.         PrintLn "    @X01(@X0EN@X01)@X0BList Filedir             @X01(@X0EW@X01)@X0Bipe File"
  257.         PrintLn "    @X01(@X0EZ@X01)@X0Bippy Scan for File       @X01(@X0EC@X01)@X0Breate DUMMY.EXT"
  258.         PrintLn "    @X01(@X0EQ@X01)@X0Buit @X03WIPE                 @X01(@X0ED@X01)@X0Bescribe File"
  259.         PrintLn "                                @X01(@X0EM@X01)@X0Bove File between Confs"
  260.         Newline
  261.         PrintLn "    @X03Current Conference-filelist to edit: @X0B", TSTRING008(CurConf(), 0)
  262.         Print "    @X03User ", U_Name(), " allowed to "
  263.         If (BOOLEAN003 == 1) Then
  264.             Print "DEL_FILES/"
  265.         Endif
  266.         If (BOOLEAN004 == 1) Then
  267.             Print "DEL_CREDS/"
  268.         Endif
  269.         PrintLn "MOVE Files"
  270.     Else
  271.         PrintLn "    @X01(@X0EN@X01)@X0BList Filedir             @X01(W)ipe File"
  272.         PrintLn "    @X01(@X0EZ@X01)@X0Bippy Scan for File       @X01(C)reate DUMMY.EXT"
  273.         PrintLn "    @X01(@X0EQ@X01)@X0Buit @X03WIPE                 @X01(@X0ED@X01)@X0Bescribe File"
  274.         PrintLn "                                @X01(@X0EM@X01)@X0Bove File between Confs"
  275.         Newline
  276.         PrintLn "    @X03Current Conference-filelist to edit: @X0B", TSTRING008(CurConf(), 0)
  277.     Endif
  278.     Return
  279.     :LABEL009
  280.     Cls
  281.     Newline
  282.     Print "    @X03WIPE [PPE2] V", STRING001, " ", STRING002, " @X09"
  283.     MPrintLn STRING031, STRING030
  284.     SPrintLn STRING029, STRING028
  285.     PrintLn "    @X0E---------------------------------------------------------------------------"
  286.     Return
  287.     :LABEL010
  288.     Gosub LABEL009
  289.     STRING036 = ""
  290.     STRING037 = ""
  291.     STRING034 = ""
  292.     STRING035 = ""
  293.     BOOLEAN014 = 0
  294.     Newline
  295.     InputStr "    @X0EEnter DUMMY-Filename: @X0B", STRING012, 9, 12, Mask_Ascii(), 2 + 8 + 256
  296.     If (STRING012 == "") Then
  297.         Return
  298.     Endif
  299.     If (InStr(STRING012, "?") == 0) Goto LABEL011
  300.     STRING036 = Left(STRING012, InStr(STRING012, "?") - 1)
  301.     STRING037 = Mid(STRING012, InStr(STRING012, "?") + 1, Len(STRING012) - InStr(STRING012, "?"))
  302.     STRING037 = LTrim(STRING037, "?")
  303.     STRING034 = "1"
  304.     InputStr "    @X0EEnter Start-Value: @X0B", STRING034, 9, 2, Mask_File(), 2 + 8 + 256
  305.     STRING035 = "9"
  306.     InputStr "    @X0EEnter   End-Value: @X0B", STRING035, 9, 2, Mask_File(), 2 + 8 + 256
  307.     If ((Len(STRING034) > 1) && (Left(STRING034, 1) == "0")) Then
  308.         BOOLEAN014 = 1
  309.     Endif
  310.     If (!(ToInteger(STRING034) == 0) && !(ToInteger(STRING035) == 0)) Then
  311.         INTEGER022 = ToInteger(STRING035) - ToInteger(STRING034)
  312.         INTEGER011 = 0
  313.         While (((1 < 0) && (INTEGER011 >= ToInteger(STRING035) - ToInteger(STRING034))) || ((1 >= 0) && (INTEGER011 <= ToInteger(STRING035) - ToInteger(STRING034)))) Do
  314.             TSTRING015(INTEGER011) = STRING036
  315.             If ((BOOLEAN014 == 1) && (INTEGER011 + 1 < 10)) Then
  316.                 TSTRING015(INTEGER011) = TSTRING015(INTEGER011) + "0"
  317.             Endif
  318.             TSTRING015(INTEGER011) = TSTRING015(INTEGER011) + String(INTEGER011 + 1) + STRING037
  319.             INTEGER011 = INTEGER011 + 1
  320.         EndWhile
  321.     Else
  322.         INTEGER022 = Asc(STRING035) - Asc(STRING034)
  323.         INTEGER011 = 0
  324.         While (((1 < 0) && (INTEGER011 >= Asc(STRING035) - Asc(STRING034))) || ((1 >= 0) && (INTEGER011 <= Asc(STRING035) - Asc(STRING034)))) Do
  325.             If (INTEGER011 < 9) Then
  326.                 TSTRING015(INTEGER011) = STRING036 + Chr(Asc(STRING034) + INTEGER011) + STRING037
  327.             Endif
  328.             If ((INTEGER011 > 15) && (INTEGER011 < 43)) Then
  329.                 TSTRING015(INTEGER011) = STRING036 + Chr(Asc(STRING034) + INTEGER011) + STRING037
  330.             Endif
  331.             INTEGER011 = INTEGER011 + 1
  332.         EndWhile
  333.     Endif
  334.     Goto LABEL012
  335.     :LABEL011
  336.     TSTRING015(0) = STRING012
  337.     INTEGER022 = 0
  338.     :LABEL012
  339.     STRING017 = "n"
  340.     InputYN "    @X0ESure", STRING017, 3
  341.     If ((STRING017 == "y") || (STRING017 == "Y")) Then
  342.         FreshLine
  343.         Newline
  344.         For INTEGER011 = 0 To INTEGER022
  345.             If (TSTRING015(INTEGER011) == "") Continue
  346.             If (Exist(TSTRING008(CurConf(), 2) + TSTRING015(INTEGER011))) Goto LABEL015
  347.             If (Exist(STRING021 + TSTRING015(INTEGER011))) Goto LABEL014
  348.             If (STRING006 == "") Goto LABEL013
  349.             FAppend 2, STRING006, 2, 0
  350.             FPutLn 2, Left(TSTRING015(INTEGER011), 12)
  351.             FClose 2
  352.             :LABEL013
  353.             FOpen 2, STRING021 + TSTRING015(INTEGER011), 1, 0
  354.             If (Ferr(2)) Goto LABEL014
  355.             If (BOOLEAN001 == 0) Then
  356.                 FPut 2, TSTRING015(INTEGER011) + "  DUMMY" + Chr(13) + Chr(10)
  357.             Endif
  358.             FClose 2
  359.             :LABEL014
  360.             STRING003 = "attrib.exe"
  361.             STRING004 = "+r " + STRING021 + Left(TSTRING015(INTEGER011), 12)
  362.             Shell 0, INTEGER001, STRING003, STRING004
  363.             FAppend 2, PPEPath() + PPEName() + ".del", 2, 0
  364.             FPut 2, "attrib -r " + STRING021 + TSTRING015(INTEGER011) + Chr(13) + Chr(10)
  365.             FPut 2, "del " + STRING021 + TSTRING015(INTEGER011) + Chr(13) + Chr(10)
  366.             FClose 2
  367.             PrintLn "    @X03", TSTRING015(INTEGER011), "        @X0EDUMMY created!"
  368.             Continue
  369.             :LABEL015
  370.             PrintLn "    @X03", TSTRING015(INTEGER011), " exist! @X0EDUMMY file could @X8CNOT @X0Ebe created!"
  371.         Next
  372.         Newline
  373.         Wait
  374.     Endif
  375.     Return
  376.     :LABEL016
  377.     BOOLEAN015 = 0
  378.     Gosub LABEL009
  379.     Dec INTEGER008
  380.     If (Len(TSTRING015(INTEGER008)) < 34) Then
  381.         Dec INTEGER008
  382.     Endif
  383.     INTEGER010 = 0
  384.     For INTEGER016 = 0 To INTEGER008
  385.         If (InStr(TSTRING015(INTEGER016), STRING026) == 0) Goto LABEL017
  386.         TSTRING014(INTEGER010) = TSTRING015(INTEGER016)
  387.         Inc INTEGER010
  388.         Continue
  389.         :LABEL017
  390.         If (InStr(TSTRING015(INTEGER016), STRING027) == 0) Continue
  391.         TSTRING014(INTEGER010) = TSTRING015(INTEGER016)
  392.         Inc INTEGER010
  393.         Continue
  394.     Next
  395.     TSTRING014(INTEGER010) = ""
  396.     INTEGER024 = 0
  397.     For INTEGER012 = 0 To INTEGER009
  398.         TBOOLEAN016(INTEGER012) = 0
  399.         STRING032 = Mid(TSTRING015(INTEGER012), 34, Len(TSTRING015(INTEGER012)) - 33)
  400.         For INTEGER023 = 0 To INTEGER017
  401.             If (InStr(STRING032, TSTRING033(INTEGER023)) == 0) Continue
  402.             Inc INTEGER024
  403.         Next
  404.         Print "@X0E", Left(TSTRING015(INTEGER012), 12), "@X03", Mid(TSTRING015(INTEGER012), 14, 19), "  @X0B", Mid(TSTRING015(INTEGER012), 34, Len(TSTRING015(INTEGER012)) - 33)
  405.         AnsiPos 31, GetY()
  406.         STRING038 = STRING032
  407.         InputText "", STRING032, 11, 45
  408.         FreshLine
  409.         If (STRING032 == "") Then
  410.             STRING032 = STRING038
  411.         Endif
  412.         If (STRING038 == STRING032) Goto LABEL018
  413.         For INTEGER023 = 0 To INTEGER017
  414.             If (InStr(STRING032, TSTRING033(INTEGER023)) == 0) Continue
  415.             STRING032 = STRING038
  416.         Next
  417.         If (STRING032 == STRING038) Goto LABEL018
  418.         TBOOLEAN016(INTEGER012) = 1
  419.         BOOLEAN015 = 1
  420.         :LABEL018
  421.         If (STRING032 == "") Goto LABEL019
  422.         TSTRING015(INTEGER012) = Left(TSTRING015(INTEGER012), 33) + STRING032
  423.         :LABEL019
  424.         AnsiPos 1, GetY() - 1
  425.         PrintLn "@X0E", Left(TSTRING015(INTEGER012), 12), "@X03", Mid(TSTRING015(INTEGER012), 14, 19), "  @X0B", Mid(TSTRING015(INTEGER012), 34, Len(TSTRING015(INTEGER012)) - 33), " "
  426.         For INTEGER023 = 0 To INTEGER017
  427.             If (InStr(STRING032, TSTRING033(INTEGER023)) == 0) Continue
  428.             Dec INTEGER024
  429.         Next
  430.     Next
  431.     If (INTEGER008 - INTEGER009 - INTEGER010 > 0) Then
  432.         For INTEGER012 = INTEGER009 + 1 To INTEGER008 - INTEGER010
  433.             STRING032 = Mid(TSTRING015(INTEGER012), 34, Len(TSTRING015(INTEGER012)) - 33)
  434.             Print "@X0E", Left(TSTRING015(INTEGER012), 12), "@X03", Mid(TSTRING015(INTEGER012), 14, 19), "  @X0B", Mid(TSTRING015(INTEGER012), 34, Len(TSTRING015(INTEGER012)) - 33)
  435.             AnsiPos 31, GetY()
  436.             InputText "", STRING032, 11, 45
  437.             FreshLine
  438.             If (STRING032 == "") Goto LABEL020
  439.             TSTRING015(INTEGER012) = Left(TSTRING015(INTEGER012), 33) + STRING032
  440.             Goto LABEL021
  441.             :LABEL020
  442.             TSTRING015(INTEGER012) = Left(TSTRING015(INTEGER012), 33)
  443.             Break
  444.             :LABEL021
  445.             AnsiPos 1, GetY() - 1
  446.             PrintLn "@X0E", Left(TSTRING015(INTEGER012), 12), "@X03", Mid(TSTRING015(INTEGER012), 14, 19), "  @X0B", Mid(TSTRING015(INTEGER012), 34, Len(TSTRING015(INTEGER012)) - 33), " "
  447.         Next
  448.     Endif
  449.     INTEGER012 = 0
  450.     INTEGER016 = INTEGER008 + 1 - INTEGER010
  451.     :LABEL022
  452.     If (STRING032 == "") Goto LABEL025
  453.     STRING032 = ""
  454.     AnsiPos 31, GetY()
  455.     InputText "", STRING032, 11, 45
  456.     FreshLine
  457.     If (STRING032 == "") Goto LABEL023
  458.     TSTRING015(INTEGER016) = "                               | " + STRING032
  459.     AnsiPos 1, GetY() - 1
  460.     PrintLn "@X0E", Left(TSTRING015(INTEGER016), 12), "@X03", Mid(TSTRING015(INTEGER016), 14, 19), "  @X0B", Mid(TSTRING015(INTEGER016), 34, Len(TSTRING015(INTEGER016)) - 33), " "
  461.     Goto LABEL024
  462.     :LABEL023
  463.     Goto LABEL025
  464.     :LABEL024
  465.     Inc INTEGER012
  466.     Inc INTEGER016
  467.     If (INTEGER012 == 5) Then
  468.         Goto LABEL025
  469.     Endif
  470.     Goto LABEL022
  471.     :LABEL025
  472.     Gosub LABEL009
  473.     For INTEGER012 = 0 To INTEGER016 - 1
  474.         If (Len(TSTRING015(INTEGER012)) > 34) Then
  475.             PrintLn "@X0E", Left(TSTRING015(INTEGER012), 12), "@X03", Mid(TSTRING015(INTEGER012), 13, 20), " @X0B", Mid(TSTRING015(INTEGER012), 34, Len(TSTRING015(INTEGER012)) - 33)
  476.         Endif
  477.     Next
  478.     INTEGER002 = INTEGER012
  479.     INTEGER012 = 0
  480.     :LABEL026
  481.     If (TSTRING014(INTEGER012) == "") Goto LABEL027
  482.     PrintLn TSTRING014(INTEGER012)
  483.     Inc INTEGER012
  484.     Goto LABEL026
  485.     :LABEL027
  486.     If (BOOLEAN011 == 1) Then
  487.         PrintLn "                               |"
  488.     Endif
  489.     Newline
  490.     If (BOOLEAN015 == 1) Then
  491.         STRING017 = "n"
  492.         InputYN "@XC3DES@X0Escribe it (last question)", STRING017, 3
  493.         FreshLine
  494.         If (Upper(STRING017) == "Y") Then
  495.             FAppend 2, TSTRING008(CurConf(), 1) + ".mod", 2, 0
  496.             For INTEGER012 = 0 To INTEGER002 - 1
  497.                 FPutLn 2, TSTRING015(INTEGER012)
  498.             Next
  499.             INTEGER012 = 0
  500.             :LABEL028
  501.             If (TSTRING014(INTEGER012) == "") Goto LABEL029
  502.             FPut 2, TSTRING014(INTEGER012) + Chr(13) + Chr(10)
  503.             Inc INTEGER012
  504.             Goto LABEL028
  505.             :LABEL029
  506.             If (BOOLEAN011 == 1) Then
  507.                 FPut 2, "                               |" + Chr(13) + Chr(10)
  508.             Endif
  509.             FClose 2
  510.             FAppend 2, PPEPath() + PPEName() + ".DCM", 1, 0
  511.             FPutLn 2, "┌─────────────────────────┬────────────────┬─────────────────┐"
  512.             FPut 2, "│"
  513.             FPut 2, Left(U_Name() + Space(25), 25)
  514.             FPut 2, "│CDate: "
  515.             FPut 2, Date()
  516.             FPut 2, " │ CTime: "
  517.             FPut 2, Time()
  518.             FPut 2, " │"
  519.             FPut 2, Chr(13) + Chr(10)
  520.             FPutLn 2, "└─────────────────────────┴────────────────┴─────────────────┘"
  521.             For INTEGER012 = 0 To INTEGER009
  522.                 FPutLn 2, TSTRING015(INTEGER012)
  523.             Next
  524.             FClose 2
  525.             PrintLn "@XC3DES@X0Escribe has written @X03.MOD @X0E file to System."
  526.             PrintLn "@X03WIPE @X0Btries to update current DIR now. Please wait!"
  527.             STRING003 = "dirmod.exe"
  528.             STRING004 = TSTRING008(CurConf(), 1)
  529.             Shell 1, INTEGER001, STRING003, STRING004
  530.             Newline
  531.             BOOLEAN002 = 1
  532.             If ((INTEGER018 > 0) && !(INTEGER024 == 0)) Then
  533.                 For INTEGER012 = 0 To INTEGER009
  534.                     If (TBOOLEAN016(INTEGER012) == 1) Then
  535.                         Delete "down.tmp"
  536.                         PrintLn "@X03WIPE @X0Bis searching @X0E", RTrim(Left(TSTRING015(INTEGER012), 12), " "), " @X0Bin DOWNLOAD.TXT."
  537.                         STRING003 = PPEPath() + "down.exe"
  538.                         STRING004 = STRING025 + " ," + RTrim(Left(TSTRING015(INTEGER012), 12), " ")
  539.                         Shell 1, INTEGER001, STRING003, STRING004
  540.                         DWORD001 = 0
  541.                         DWORD001 = FileInf(TSTRING008(CurConf(), 2) + RTrim(Left(TSTRING015(INTEGER012), 12), " "), 4)
  542.                         If (DWORD001 > 0) Then
  543.                             INTEGER014 = -1
  544.                             If (Exist("down.tmp")) Then
  545.                                 FOpen 2, "down.tmp", 0, 0
  546.                                 FGet 2, STRING019
  547.                                 :LABEL030
  548.                                 If (Ferr(2)) Goto LABEL031
  549.                                 If (Left(STRING019, 4) == "(U),") Then
  550.                                     Inc INTEGER014
  551.                                     STRING019 = Right(STRING019, Len(STRING019) - 4)
  552.                                     INTEGER015 = InStr(STRING019, ",")
  553.                                     TSTRING016(INTEGER014) = Left(STRING019, INTEGER015 - 1)
  554.                                     TSTRING016(INTEGER014) = TSTRING016(INTEGER014) + Space(26 - Len(TSTRING016(INTEGER014))) + "-" + Right(Space(8) + String(INTEGER018), 8) + Space(2) + Left(TSTRING015(INTEGER012), 12) + Space(2) + "Insufficant DES"
  555.                                 Endif
  556.                                 FGet 2, STRING019
  557.                                 Goto LABEL030
  558.                                 :LABEL031
  559.                                 FClose 2
  560.                             Endif
  561.                             If (INTEGER014 == -1) Goto LABEL033
  562.                             If (BOOLEAN006 == 0) Then
  563.                                 PrintLn "@X03DESCRIBE @X0Bfound ", INTEGER014 + 1, " aflicted user for @X0E", RTrim(Left(TSTRING015(INTEGER012), 12), " ")
  564.                                 Goto LABEL032
  565.                             Endif
  566.                             PrintLn "@X03DESCRIBE @X0Banalyzed for:       @X0EBytes    Filename"
  567.                             PrintLn "@X03---------------------------------------------------------------------"
  568.                             :LABEL032
  569.                             FAppend 2, PPEPath() + PPEName() + ".adj", 2, 0
  570.                             For INTEGER013 = 0 To INTEGER014
  571.                                 FPut 2, TSTRING016(INTEGER013) + Chr(13) + Chr(10)
  572.                                 If (BOOLEAN006 == 1) Then
  573.                                     PrintLn "@X0E", Left(TSTRING016(INTEGER013), 26), "@X0C", Mid(TSTRING016(INTEGER013), 27, 1), " @X03", Mid(TSTRING016(INTEGER013), 28, 8), "  @X0E", Mid(TSTRING016(INTEGER013), 38, 31)
  574.                                 Endif
  575.                             Next
  576.                             FClose 2
  577.                             Goto LABEL034
  578.                             :LABEL033
  579.                             PrintLn "@X03DESCRIBE @X0Bhas not found any aflicted user for @X0E", RTrim(Left(TSTRING015(INTEGER012), 12), " ")
  580.                             :LABEL034
  581.                             Continue
  582.                         Endif
  583.                         PrintLn "@X03DESCRIBE @X0Bhas not found @X0E", RTrim(Left(TSTRING015(INTEGER012), 12), " "), " @X0B in DLPatch.!"
  584.                     Endif
  585.                 Next
  586.             Endif
  587.             If (INTEGER019 > 0) Then
  588.                 If (INTEGER024 > 0) Then
  589.                     STRING024 = String(U_Bdl())
  590.                     PrintLn "@X03-------------------------------------------------------------------------------"
  591.                     Print "@X03DESCRIBE @X0Breports an old download-status with: @X0E"
  592.                     STRING005 = STRING024
  593.                     Gosub LABEL068
  594.                     PrintLn " @X0Bbytes."
  595.                     For INTEGER012 = 1 To INTEGER024
  596.                         AdjBytes -ToDWord(INTEGER019)
  597.                     Next
  598.                     Print "@X03DESCRIBE @X0Breports  a new download-status with: @X0E"
  599.                     STRING005 = String(U_Bdl())
  600.                     Gosub LABEL068
  601.                     PrintLn " @X0Bbytes."
  602.                     PrintLn "@X03-------------------------------------------------------------------------------"
  603.                 Endif
  604.             Endif
  605.         Endif
  606.     Endif
  607.     Return
  608.     :LABEL035
  609.     Gosub LABEL009
  610.     Print "    @X0EEnter Filename to "
  611.     If ((BOOLEAN009 == 0) && (BOOLEAN012 == 0)) Then
  612.         Print "@X03WIPE@X0E: "
  613.     Endif
  614.     If ((BOOLEAN009 == 1) && (BOOLEAN012 == 0)) Then
  615.         Print "@X03DES@X0Ecribe: "
  616.     Endif
  617.     If ((BOOLEAN009 == 0) && (BOOLEAN012 == 1)) Then
  618.         Print "@X03MOVE@X0E: "
  619.     Endif
  620.     InputStr "@X0B", STRING012, 9, 12, Mask_File(), 2 + 8 + 256
  621.     If (STRING012 == "") Then
  622.         Return
  623.     Endif
  624.     :LABEL036
  625.     STRING017 = ""
  626.     Gosub LABEL009
  627.     If (Len(STRING012) < 3) Then
  628.         PrintLn "    @X0B", STRING012, " @X03is too short for efficient match(es)! Min length are @X0B3 chars."
  629.         Wait
  630.         Return
  631.     Endif
  632.     PrintLn "    @X03Scanning Filelist: @X0B", TSTRING008(CurConf(), 0), " @X03for @X0B", STRING012
  633.     Delete "wipe.tmp"
  634.     STRING003 = PPEPath() + PPEName() + ".EXE"
  635.     STRING004 = TSTRING008(CurConf(), 1) + " " + STRING012
  636.     Shell 1, INTEGER001, STRING003, STRING004
  637.     FOpen 1, "wipe.tmp", 0, 0
  638.     BOOLEAN005 = 0
  639.     If (Ferr(1)) Goto LABEL043
  640.     FGet 1, STRING032
  641.     :LABEL037
  642.     If (Ferr(1)) Goto LABEL042
  643.     INTEGER008 = 0
  644.     :LABEL038
  645.     If (Left(STRING032, 1) == " ") Goto LABEL039
  646.     TSTRING015(INTEGER008) = STRING032
  647.     Inc INTEGER008
  648.     FGet 1, STRING032
  649.     If (Ferr(1)) Then
  650.         BOOLEAN005 = 1
  651.     Else
  652.         If (Inkey() == Chr(27)) Then
  653.             Goto LABEL039
  654.         Endif
  655.         Goto LABEL038
  656.     Endif
  657.     :LABEL039
  658.     If (Inkey() == Chr(27)) Then
  659.         Goto LABEL042
  660.     Endif
  661.     INTEGER009 = INTEGER008 - 1
  662.     If (BOOLEAN005 == 1) Then
  663.         Goto LABEL042
  664.     Endif
  665.     While (Left(STRING032, 1) == " ") Do
  666.         If (Left(STRING032, 2) == " |") Goto LABEL040
  667.         TSTRING015(INTEGER008) = STRING032
  668.         Inc INTEGER008
  669.         :LABEL040
  670.         FGet 1, STRING032
  671.         If (Ferr(1)) Then
  672.             BOOLEAN005 = 1
  673.             Break
  674.         Endif
  675.         If (Inkey() == Chr(27)) Then
  676.             Break
  677.         Endif
  678.     EndWhile
  679.     If (INTEGER008 == 0) Goto LABEL041
  680.     Gosub LABEL009
  681.     If ((BOOLEAN009 == 0) && (BOOLEAN012 == 0)) Then
  682.         Print "@X03WIPE"
  683.     Endif
  684.     If ((BOOLEAN009 == 1) && (BOOLEAN012 == 0)) Then
  685.         Print "@X03DESCRIBE"
  686.     Endif
  687.     If ((BOOLEAN009 == 0) && (BOOLEAN012 == 1)) Then
  688.         Print "@X03MOVE"
  689.     Endif
  690.     PrintLn " @X0Efound this information:                                   "
  691.     Newline
  692.     For INTEGER011 = 0 To INTEGER008 - 1
  693.         PrintLn TSTRING015(INTEGER011)
  694.     Next
  695.     STRING017 = "n"
  696.     Newline
  697.     If ((BOOLEAN009 == 0) && (BOOLEAN012 == 0)) Then
  698.         InputYN "@XC3WIPE@X0E it", STRING017, 3
  699.         FreshLine
  700.     Endif
  701.     If ((BOOLEAN009 == 1) && (BOOLEAN012 == 0)) Then
  702.         InputYN "@XC3DESCRIBE@X0E it", STRING017, 3
  703.         FreshLine
  704.     Endif
  705.     If ((BOOLEAN009 == 0) && (BOOLEAN012 == 1)) Then
  706.         InputYN "@XC3MOVE@X0E it", STRING017, 3
  707.         FreshLine
  708.     Endif
  709.     If (Upper(STRING017) == "Y") Then
  710.         If ((BOOLEAN009 == 0) && (BOOLEAN012 == 0)) Then
  711.             Gosub LABEL044
  712.         Endif
  713.         If ((BOOLEAN009 == 1) && (BOOLEAN012 == 0)) Then
  714.             Gosub LABEL016
  715.         Endif
  716.         If ((BOOLEAN009 == 0) && (BOOLEAN012 == 1)) Then
  717.             Gosub LABEL006
  718.         Endif
  719.     Endif
  720.     STRING017 = "y"
  721.     FreshLine
  722.     InputYN "@X0EDisplay next data?", STRING017, 3
  723.     FreshLine
  724.     If (STRING017 == "N") Then
  725.         FClose 1
  726.         Return
  727.     Endif
  728.     :LABEL041
  729.     If (BOOLEAN005 == 1) Then
  730.         Goto LABEL042
  731.     Endif
  732.     Goto LABEL037
  733.     :LABEL042
  734.     FClose 1
  735.     :LABEL043
  736.     Return
  737.     :LABEL044
  738.     If (TSTRING023(0) == "") Goto LABEL045
  739.     For INTEGER016 = 0 To INTEGER003
  740.         PrintLn "                        @X03#", INTEGER016 + 1, ": ", TSTRING023(INTEGER016)
  741.     Next
  742.     :LABEL045
  743.     If (Left(STRING018, 2) == "@X") Then
  744.         STRING018 = Mid(STRING018, 5, Len(STRING018) - 4)
  745.     Endif
  746.     InputStr "     @X0EEnter FAKE Comment: ", STRING018, 9, 39, Mask_Ascii(), 2 + 8 + 32
  747.     STRING017 = "n"
  748.     If (STRING018 == "") Then
  749.         STRING018 = "@X0FFAKE - NO REASON GIVEN"
  750.     Endif
  751.     If (Len(STRING018) == 1) Then
  752.         STRING018 = TSTRING023(ToInteger(STRING018) - 1)
  753.     Endif
  754.     If (Left(STRING018, 2) == "@X") Goto LABEL046
  755.     STRING018 = "@X0F" + STRING018
  756.     :LABEL046
  757.     INTEGER016 = Len(STRING018)
  758.     PrintLn "     @X0EEnter FAKE Comment: ? (", STRING018 + Space(43 - INTEGER016) + "@X0E)"
  759.     BOOLEAN017 = 0
  760.     If (BOOLEAN003 == 1) Then
  761.         STRING017 = "m"
  762.         InputStr "     @X0EDelete file(s) or move file(s): ", STRING017, 9, 1, "mMdD", 2 + 8 + 32
  763.         If (STRING017 == "D") Then
  764.             BOOLEAN017 = 1
  765.         Endif
  766.     Endif
  767.     BOOLEAN018 = 0
  768.     If (BOOLEAN004 == 1) Then
  769.         STRING017 = "n"
  770.         InputStr "     @X0EShould @X03WIPE @X0Eadjust bytes for file(s)/user(s): ", STRING017, 9, 1, "yYnN", 2 + 8 + 32
  771.         If (STRING017 == "Y") Then
  772.             BOOLEAN018 = 1
  773.         Endif
  774.     Endif
  775.     STRING017 = "n"
  776.     InputYN "@XC3WIPE@X0E it (no return!)", STRING017, 3
  777.     FreshLine
  778.     If (Upper(STRING017) == "N") Then
  779.         Return
  780.     Endif
  781.     Newline
  782.     INTEGER010 = -1
  783.     For INTEGER016 = INTEGER009 + 1 To INTEGER008 - 1
  784.         TSTRING015(INTEGER016) = StripAtx(TSTRING015(INTEGER016))
  785.         INTEGER015 = InStr(TSTRING015(INTEGER016), STRING026)
  786.         If (INTEGER015 == 0) Goto LABEL047
  787.         INTEGER015 = INTEGER015 + Len(STRING026)
  788.         :LABEL047
  789.         If (INTEGER015 == 0) Then
  790.             INTEGER015 = InStr(TSTRING015(INTEGER016), STRING027)
  791.             If (INTEGER015 == 0) Goto LABEL048
  792.             INTEGER015 = INTEGER015 + Len(STRING027)
  793.         Endif
  794.         :LABEL048
  795.         If (INTEGER015 == 0) Continue
  796.         Inc INTEGER010
  797.         TSTRING014(INTEGER010) = LTrim(Mid(TSTRING015(INTEGER016), INTEGER015, Len(TSTRING015(INTEGER016)) - INTEGER015 + 1), " ")
  798.     Next
  799.     StartDisp 1
  800.     For INTEGER016 = 0 To INTEGER009
  801.         If (BOOLEAN018 == 1) Then
  802.             Delete "down.tmp"
  803.             PrintLn "@X03WIPE @X0Bis searching @X0E", RTrim(Left(TSTRING015(INTEGER016), 12), " "), " @X0Bin DOWNLOAD.TXT."
  804.             STRING003 = PPEPath() + "down.exe"
  805.             STRING004 = STRING025 + " ," + RTrim(Left(TSTRING015(INTEGER016), 12), " ")
  806.             Shell 1, INTEGER001, STRING003, STRING004
  807.             DWORD001 = 0
  808.             DWORD001 = FileInf(TSTRING008(CurConf(), 2) + RTrim(Left(TSTRING015(INTEGER016), 12), " "), 4)
  809.             If (DWORD001 > 0) Then
  810.                 INTEGER014 = -1
  811.                 If (Exist("down.tmp")) Then
  812.                     FOpen 2, "down.tmp", 0, 0
  813.                     FGet 2, STRING019
  814.                     :LABEL049
  815.                     If (Ferr(2)) Goto LABEL050
  816.                     If (Left(STRING019, 4) == "(D),") Then
  817.                         Inc INTEGER014
  818.                         STRING019 = Right(STRING019, Len(STRING019) - 4)
  819.                         INTEGER015 = InStr(STRING019, ",")
  820.                         TSTRING016(INTEGER014) = Left(STRING019, INTEGER015 - 1)
  821.                         TSTRING016(INTEGER014) = TSTRING016(INTEGER014) + Space(26 - Len(TSTRING016(INTEGER014))) + "+" + Right(Space(8) + String(DWORD001), 8) + Space(2) + Left(TSTRING015(INTEGER016), 12) + Space(2) + Mid(STRING019, INTEGER015 + 1, 10) + Space(2) + Mid(STRING019, INTEGER015 + 12, 5)
  822.                     Endif
  823.                     If (Left(STRING019, 4) == "(U),") Then
  824.                         Inc INTEGER014
  825.                         STRING019 = Right(STRING019, Len(STRING019) - 4)
  826.                         INTEGER015 = InStr(STRING019, ",")
  827.                         TSTRING016(INTEGER014) = Left(STRING019, INTEGER015 - 1)
  828.                         TSTRING016(INTEGER014) = TSTRING016(INTEGER014) + Space(26 - Len(TSTRING016(INTEGER014))) + "-" + Right(Space(8) + String(DWORD001), 8) + Space(2) + Left(TSTRING015(INTEGER016), 12) + Space(2) + Mid(STRING019, INTEGER015 + 1, 10) + Space(2) + Mid(STRING019, INTEGER015 + 12, 5)
  829.                     Endif
  830.                     FGet 2, STRING019
  831.                     Goto LABEL049
  832.                     :LABEL050
  833.                     FClose 2
  834.                 Endif
  835.                 If (INTEGER014 == -1) Goto LABEL052
  836.                 If (BOOLEAN006 == 0) Then
  837.                     PrintLn "@X03WIPE @X0Bfound ", INTEGER014 + 1, " aflicted user for @X0E", RTrim(Left(TSTRING015(INTEGER016), 12), " ")
  838.                     Goto LABEL051
  839.                 Endif
  840.                 PrintLn "@X03WIPE @X0Banalyzed for:           @X0EBytes    Filename      Date        Time"
  841.                 PrintLn "@X03---------------------------------------------------------------------"
  842.                 :LABEL051
  843.                 FAppend 2, PPEPath() + PPEName() + ".adj", 2, 0
  844.                 For INTEGER013 = 0 To INTEGER014
  845.                     FPut 2, TSTRING016(INTEGER013) + Chr(13) + Chr(10)
  846.                     If (BOOLEAN006 == 1) Then
  847.                         PrintLn "@X0E", Left(TSTRING016(INTEGER013), 26), "@X0C", Mid(TSTRING016(INTEGER013), 27, 1), " @X03", Mid(TSTRING016(INTEGER013), 28, 8), "  @X0E", Mid(TSTRING016(INTEGER013), 38, 31)
  848.                     Endif
  849.                 Next
  850.                 FClose 2
  851.                 If (BOOLEAN006 == 1) Then
  852.                     PrintLn "@X03---------------------------------------------------------------------"
  853.                 Endif
  854.                 Goto LABEL053
  855.                 :LABEL052
  856.                 PrintLn "@X03WIPE @X0Bhas not found any aflicted user for @X0E", RTrim(Left(TSTRING015(INTEGER016), 12), " ")
  857.                 :LABEL053
  858.                 Goto LABEL054
  859.             Endif
  860.             PrintLn "@X03WIPE @X0Bhas not found @X0E", RTrim(Left(TSTRING015(INTEGER016), 12), " "), " @X0B in DLPatch.!"
  861.         Endif
  862.         :LABEL054
  863.         If (BOOLEAN017 == 0) Then
  864.             PrintLn "@X03WIPE @X0Bis moving @X0E", RTrim(Left(TSTRING015(INTEGER016), 12), " "), " @X0Bto FAKE dir."
  865.             STRING003 = PPEPath() + "move.exe"
  866.             STRING004 = TSTRING008(CurConf(), 2) + RTrim(Left(TSTRING015(INTEGER016), 12), " ") + " " + STRING020 + " /O"
  867.             Shell 1, INTEGER001, STRING003, STRING004
  868.         Endif
  869.         PrintLn "@X03WIPE @X0Bis creating a DUMMY file for @X0E", RTrim(Left(TSTRING015(INTEGER016), 12), " "), " @X0Bto prevent double U/L."
  870.         FOpen 2, STRING021 + RTrim(Left(TSTRING015(INTEGER016), 12), " "), 1, 0
  871.         If (BOOLEAN001 == 0) Then
  872.             FPut 2, Left(TSTRING015(INTEGER016), 33) + "  Faked by:" + U_Name() + Chr(13) + Chr(10)
  873.             FPut 2, "Reason: " + STRING018 + Chr(13) + Chr(10)
  874.         Endif
  875.         BOOLEAN002 = 1
  876.         FClose 2
  877.         STRING003 = "attrib.exe"
  878.         STRING004 = STRING021 + Left(TSTRING015(INTEGER016), 12) + " +R"
  879.         Shell 1, INTEGER001, STRING003, STRING004
  880.         If (BOOLEAN017 == 1) Then
  881.             PrintLn "@X03WIPE @X0Bis deleting the original File at DIR: @X0E", TSTRING008(CurConf(), 0)
  882.             Delete TSTRING008(CurConf(), 2) + RTrim(Left(TSTRING015(INTEGER016), 12), " ")
  883.         Endif
  884.         If (STRING006 == "") Goto LABEL055
  885.         FAppend 2, STRING006, 2, 0
  886.         FPutLn 2, Left(TSTRING015(INTEGER016), 12)
  887.         FClose 2
  888.         :LABEL055
  889.         FAppend 2, PPEPath() + PPEName() + ".del", 2, 0
  890.         FPut 2, "attrib -r " + STRING021 + Left(TSTRING015(INTEGER016), 12) + Chr(13) + Chr(10)
  891.         FPut 2, "del " + STRING021 + Left(TSTRING015(INTEGER016), 12) + Chr(13) + Chr(10)
  892.         FClose 2
  893.         If (Exist(PPEPath() + PPEName() + ".log")) Goto LABEL056
  894.         FAppend 2, PPEPath() + PPEName() + ".log", 2, 0
  895.         FPutLn 2, "Filename:   │FSize:  │Filedate:│Fakedate:│ Faked by:                │ Fake reason:                               │ Faked user:"
  896.         FPutLn 2, "────────────┼────────┼─────────┼─────────┼──────────────────────────┼────────────────────────────────────────────┼───────────────────────────"
  897.         FClose 2
  898.         :LABEL056
  899.         FAppend 2, PPEPath() + PPEName() + ".log", 2, 0
  900.         FPut 2, Left(TSTRING015(INTEGER016), 12)
  901.         FPut 2, "│"
  902.         FPut 2, Mid(TSTRING015(INTEGER016), 14, 8)
  903.         FPut 2, "│"
  904.         FPut 2, Mid(TSTRING015(INTEGER016), 23, 9)
  905.         FPut 2, "│ "
  906.         FPut 2, Date()
  907.         FPut 2, "│ "
  908.         FPut 2, Left(STRING013 + Space(25), 25)
  909.         FPut 2, "│ "
  910.         FPut 2, Mid(STRING018, 5, 43)
  911.         FPut 2, "│ "
  912.         For INTEGER013 = 0 To INTEGER010
  913.             FPut 2, TSTRING014(INTEGER013) + " /"
  914.         Next
  915.         FPut 2, Chr(13) + Chr(10)
  916.         FClose 2
  917.         FAppend 2, TSTRING008(CurConf(), 1) + ".MOD", 2, 0
  918.         FPut 2, " |" + TSTRING015(INTEGER016) + Chr(13) + Chr(10)
  919.         FClose 2
  920.         Newline
  921.     Next
  922.     FAppend 2, TSTRING008(CurConf(), 1) + ".MOD", 2, 0
  923.     FPut 2, "                               | " + STRING018 + Chr(13) + Chr(10)
  924.     For INTEGER016 = 0 To INTEGER010
  925.         FPut 2, "                               | @X0FFaked User: @X03", TSTRING014(INTEGER016) + Chr(13) + Chr(10)
  926.     Next
  927.     If (BOOLEAN011 == 1) Then
  928.         FPut 2, "  |" + Chr(13) + Chr(10)
  929.     Endif
  930.     FClose 2
  931.     StartDisp 0
  932.     Return
  933.     :LABEL057
  934.     While (STRING009 <> "Q") Do
  935.         Gosub LABEL008
  936.         Newline
  937.         If (BOOLEAN010 == 1) Then
  938.             InputStr "    @X0EEnter Command: ", STRING009, 9, 1, "MNWQZCD", 8
  939.         Else
  940.             InputStr "    @X0EEnter Command: ", STRING009, 9, 1, "MNQZD", 8
  941.         Endif
  942.         Newline
  943.         If (STRING009 == "N") Then
  944.             STRING011 = ""
  945.             InputStr "    @X0EEnter Searchdate: ", STRING011, 9, 6, "1234567890", 2
  946.             If (STRING011 <> "") Then
  947.                 STRING010 = "N;" + STRING011 + ";U"
  948.                 Dir STRING010
  949.             Endif
  950.         Endif
  951.         If (STRING009 == "Z") Then
  952.             STRING011 = ""
  953.             InputStr "    @X0EEnter Searchstring: ", STRING011, 9, 30, Mask_Ascii(), 2
  954.             If (STRING011 <> "") Then
  955.                 STRING010 = "Z;" + STRING011 + ";U"
  956.                 Dir STRING010
  957.             Endif
  958.         Endif
  959.         BOOLEAN012 = 0
  960.         If (STRING009 == "W") Then
  961.             BOOLEAN009 = 0
  962.             BOOLEAN012 = 0
  963.             Gosub LABEL035
  964.         Endif
  965.         If (STRING009 == "D") Then
  966.             BOOLEAN009 = 1
  967.             BOOLEAN012 = 0
  968.             Gosub LABEL035
  969.         Endif
  970.         If (STRING009 == "M") Then
  971.             BOOLEAN009 = 0
  972.             BOOLEAN012 = 1
  973.             Gosub LABEL035
  974.         Endif
  975.         If (STRING009 == "C") Then
  976.             Gosub LABEL010
  977.         Endif
  978.     EndWhile
  979.     Return
  980.     :LABEL058
  981.     If (Exist(PPEPath() + PPEName() + ".cnf")) Goto LABEL059
  982.     Newline
  983.     SPrintLn PPEName() + ".cnf file not found! Check existence!"
  984.     Newline
  985.     End
  986.     :LABEL059
  987.     If (Exist(PPEPath() + PPEName() + ".alw")) Goto LABEL060
  988.     Newline
  989.     SPrintLn "WIPE.ALW file not found! Check existence!"
  990.     Newline
  991.     End
  992.     :LABEL060
  993.     GetUser
  994.     STRING025 = ReadLine(PCBDat(), 46)
  995.     FClose -1
  996.     BOOLEAN010 = 0
  997.     If (STRING022 == "GET_DESCRIPT") Then
  998.         STRING022 = ""
  999.     Else
  1000.         If (STRING022 == "GET_CREDS") Goto LABEL063
  1001.         BOOLEAN010 = 1
  1002.         FOpen 2, PPEPath() + PPEName() + ".ALW", 0, 0
  1003.         :LABEL061
  1004.         If (Ferr(2)) Goto LABEL062
  1005.         FGet 2, STRING013
  1006.         BOOLEAN003 = 0
  1007.         If (Left(STRING013, 1) == "+") Then
  1008.             BOOLEAN003 = 1
  1009.             STRING013 = LTrim(STRING013, "+")
  1010.         Endif
  1011.         BOOLEAN004 = 0
  1012.         If (Right(STRING013, 1) == "+") Then
  1013.             BOOLEAN004 = 1
  1014.             STRING013 = RTrim(STRING013, "+")
  1015.         Endif
  1016.         If (Upper(STRING013) == U_Name()) Then
  1017.             FClose 2
  1018.         Else
  1019.             Goto LABEL061
  1020.             :LABEL062
  1021.             FClose 2
  1022.             Newline
  1023.             PrintLn "@X0B", U_Name(), "@X0E, you aren't allowed to @X03WIPE@X0E files!"
  1024.             PrintLn "@X0B", U_Name(), "@X0E, email to SYSOP your wish for access!"
  1025.             Goto LABEL004
  1026.         Endif
  1027.     Endif
  1028.     :LABEL063
  1029.     If (Exist(PPEPath() + PPEName() + ".cmt")) Then
  1030.         INTEGER003 = 0
  1031.         FOpen 2, PPEPath() + PPEName() + ".cmt", 0, 0
  1032.         If (Ferr(2)) Goto LABEL064
  1033.         FGet 2, TSTRING023(INTEGER003)
  1034.         :LABEL064
  1035.         If (Ferr(2)) Goto LABEL065
  1036.         If (Len(TSTRING023(INTEGER003)) > 42) Then
  1037.             TSTRING023(INTEGER003) = Left(TSTRING023(INTEGER003), 42)
  1038.         Endif
  1039.         If ((INTEGER003 > 5) || (TSTRING023(INTEGER003) == "")) Then
  1040.             FClose 2
  1041.             Goto LABEL065
  1042.         Endif
  1043.         Inc INTEGER003
  1044.         FGet 2, TSTRING023(INTEGER003)
  1045.         Goto LABEL064
  1046.         :LABEL065
  1047.         FClose 2
  1048.     Endif
  1049.     Dec INTEGER003
  1050.     STRING020 = ReadLine(PPEPath() + PPEName() + ".cnf", 1)
  1051.     If (STRING020 == "ZERO") Then
  1052.         BOOLEAN001 = 1
  1053.     Endif
  1054.     STRING020 = ReadLine(PPEPath() + PPEName() + ".cnf", 2)
  1055.     STRING021 = ReadLine(PPEPath() + PPEName() + ".cnf", 3)
  1056.     STRING006 = ""
  1057.     STRING006 = ReadLine(PPEPath() + PPEName() + ".cnf", 4)
  1058.     STRING026 = ReadLine(PPEPath() + PPEName() + ".cnf", 5)
  1059.     STRING027 = "Uploaded by:"
  1060.     If (ReadLine(PPEPath() + PPEName() + ".cnf", 6) == "NO") Then
  1061.         BOOLEAN011 = 0
  1062.     Endif
  1063.     If (ReadLine(PPEPath() + PPEName() + ".cnf", 7) == "NO") Then
  1064.         BOOLEAN006 = 0
  1065.     Endif
  1066.     INTEGER018 = 0
  1067.     INTEGER019 = 0
  1068.     INTEGER018 = ToInteger(ReadLine(PPEPath() + PPEName() + ".cnf", 8))
  1069.     INTEGER019 = ToInteger(ReadLine(PPEPath() + PPEName() + ".cnf", 9))
  1070.     INTEGER017 = 2
  1071.     If (Exist(PPEPath() + PPEName() + ".des")) Then
  1072.         FOpen 2, PPEPath() + PPEName() + ".des", 0, 0
  1073.         If (Ferr(2)) Goto LABEL067
  1074.         FGet 2, TSTRING033(INTEGER017)
  1075.         :LABEL066
  1076.         If (Ferr(2)) Goto LABEL067
  1077.         Inc INTEGER017
  1078.         If (INTEGER017 > 7) Then
  1079.             INTEGER017 = 7
  1080.         Endif
  1081.         FGet 2, TSTRING033(INTEGER017)
  1082.         Goto LABEL066
  1083.         :LABEL067
  1084.         FClose 2
  1085.     Endif
  1086.     Dec INTEGER017
  1087.     Return
  1088.     :LABEL068
  1089.     STRING005 = Space(12) + STRING005
  1090.     STRING005 = Right(STRING005, 12)
  1091.     STRING039 = Left(STRING005, 3)
  1092.     STRING040 = Mid(STRING005, 4, 3)
  1093.     STRING041 = Mid(STRING005, 7, 3)
  1094.     STRING042 = Right(STRING005, 3)
  1095.     STRING005 = Strip(STRING039, " ")
  1096.     Print "@X0E"
  1097.     If (Len(STRING005) == 0) Then
  1098.         Print "    "
  1099.     Else
  1100.         Print " ", STRING039, "."
  1101.     Endif
  1102.     STRING005 = Strip(STRING040, " ")
  1103.     If (Len(STRING005) == 0) Then
  1104.         Print "    "
  1105.     Else
  1106.         Print STRING040, "."
  1107.     Endif
  1108.     STRING005 = Strip(STRING041, " ")
  1109.     If (Len(STRING005) == 0) Then
  1110.         Print "    "
  1111.     Else
  1112.         Print STRING041, "."
  1113.     Endif
  1114.     STRING005 = Strip(STRING042, " ")
  1115.     If (Len(STRING005) == 0) Then
  1116.         Print "    "
  1117.     Else
  1118.         Print STRING042
  1119.     Endif
  1120.     Return
  1121.     :LABEL069
  1122.     If (Exist(PPEPath() + PPEName() + ".adj")) Goto LABEL070
  1123.     Return
  1124.     :LABEL070
  1125.     FOpen 1, PPEPath() + PPEName() + ".adj", 0, 0
  1126.     If (Ferr(1)) Then
  1127.         Return
  1128.     Endif
  1129.     Delete "adjust.tmp"
  1130.     StartDisp 1
  1131.     STRING024 = String(U_Bdl())
  1132.     FOpen 2, "adjust.tmp", 1, 0
  1133.     If (Ferr(2)) Goto LABEL072
  1134.     FGet 1, STRING032
  1135.     :LABEL071
  1136.     If (Ferr(1)) Goto LABEL072
  1137.     If (U_Name() == Upper(RTrim(Left(STRING032, 25), " "))) Then
  1138.         If (BOOLEAN008 == 0) Then
  1139.             Newline
  1140.             PrintLn "@X03WIPE @X0Badjusts:     @X0EBytes                         Filename      Date        Time"
  1141.             PrintLn "@X03-------------------------------------------------------------------------------"
  1142.             BOOLEAN008 = 1
  1143.         Endif
  1144.         BOOLEAN007 = 1
  1145.         If (Mid(STRING032, 27, 1) == "+") Then
  1146.             AdjBytes 0 - ToDWord(Mid(STRING032, 28, 8))
  1147.             PrintLn "@X03WIPE @X0Breturns you @X0E", Mid(STRING032, 28, 8), "@X0B for D/Led faked file: @X0E", Mid(STRING032, 38, 31)
  1148.         Endif
  1149.         If (Mid(STRING032, 27, 1) == "-") Then
  1150.             AdjBytes 3 * ToDWord(Mid(STRING032, 28, 8))
  1151.             PrintLn "@X03WIPE @X0Btakes you   @X0E", Mid(STRING032, 28, 8), "@X0B for U/Led faked file: @X0E", Mid(STRING032, 38, 31)
  1152.         Endif
  1153.     Else
  1154.         FPutLn 2, STRING032
  1155.     Endif
  1156.     FGet 1, STRING032
  1157.     Goto LABEL071
  1158.     :LABEL072
  1159.     FClose 2
  1160.     FClose 1
  1161.     Copy "adjust.tmp", PPEPath() + PPEName() + ".adj"
  1162.     If (BOOLEAN007 == 1) Then
  1163.         PrintLn "@X03-------------------------------------------------------------------------------"
  1164.         Print "@X03WIPE @X0Breports an old download-status with: @X0E"
  1165.         STRING005 = STRING024
  1166.         Gosub LABEL068
  1167.         PrintLn " @X0Bbytes."
  1168.         Print "@X03WIPE @X0Breports  a new download-status with: @X0E"
  1169.         STRING005 = String(U_Bdl())
  1170.         Gosub LABEL068
  1171.         PrintLn " @X0Bbytes."
  1172.         PrintLn "@X03-------------------------------------------------------------------------------"
  1173.         Print "@X03WIPE [PPE2] V", STRING001, " ", STRING002, " @X09"
  1174.         MPrintLn STRING031, STRING030
  1175.         SPrintLn STRING029, STRING028
  1176.     Endif
  1177.     StartDisp 0
  1178.     End
  1179.     :LABEL073
  1180.     BOOLEAN012 = 0
  1181.     TSTRING033(0) = "Keyboard Time Expired!"
  1182.     TSTRING033(1) = "Carrier Lost ..."
  1183.     STRING031 = Chr(10) + Chr(37) + Chr(11) + Chr(2) + Chr(54) + Chr(74) + Chr(84) + Chr(87) + Chr(85) + Chr(86) + Chr(2) + Chr(36) + Chr(84) + Chr(81) + Chr(86) + Chr(74) + Chr(71) + Chr(84) + Chr(85)
  1184.     STRING022 = GetToken()
  1185.     BOOLEAN001 = 0
  1186.     BOOLEAN002 = 0
  1187.     BOOLEAN006 = 1
  1188.     BOOLEAN011 = 1
  1189.     BOOLEAN007 = 0
  1190.     BOOLEAN008 = 0
  1191.     BOOLEAN009 = 0
  1192.     TSTRING008(0, 0) = ""
  1193.     TSTRING008(0, 1) = ""
  1194.     INTEGER006 = 0
  1195.     INTEGER007 = 1
  1196.     INTEGER004 = 33
  1197.     INTEGER005 = 14
  1198.     STRING009 = ""
  1199.     STRING030 = Chr(2) + Chr(15) + Chr(2) + Chr(46) + Chr(71) + Chr(73) + Chr(71) + Chr(80) + Chr(70) + Chr(85) + Chr(2) + Chr(89) + Chr(75) + Chr(78) + Chr(78) + Chr(2) + Chr(80) + Chr(71) + Chr(88) + Chr(71) + Chr(84) + Chr(2) + Chr(70) + Chr(75) + Chr(71) + Chr(16) + Chr(16) + Chr(16)
  1200.     Gosub LABEL002
  1201.     Gosub LABEL058
  1202.     Gosub LABEL001
  1203.     If (STRING022 == "") Goto LABEL074
  1204.     If (STRING022 == "GET_CREDS") Then
  1205.         Goto LABEL069
  1206.     Endif
  1207.     STRING012 = STRING022
  1208.     Gosub LABEL036
  1209.     PrintLn 
  1210.     Goto LABEL075
  1211.     :LABEL074
  1212.     Gosub LABEL057
  1213.     :LABEL075
  1214.     StartDisp 0
  1215.     Goto LABEL004
  1216.     End
  1217.  
  1218. ;------------------------------------------------------------------------------
  1219. ;
  1220. ; Usage report (before postprocessing)
  1221. ;
  1222. ; ■ Statements used :
  1223. ;
  1224. ;    5       End
  1225. ;    1       Cls
  1226. ;    2       Wait
  1227. ;    283     Goto 
  1228. ;    276     Let 
  1229. ;    28      Print 
  1230. ;    68      PrintLn 
  1231. ;    198     If 
  1232. ;    10      FOpen 
  1233. ;    17      FAppend 
  1234. ;    32      FClose 
  1235. ;    14      FGet 
  1236. ;    52      FPut 
  1237. ;    13      FPutLn 
  1238. ;    7       StartDisp 
  1239. ;    1       GetUser
  1240. ;    5       Delete 
  1241. ;    1       Log 
  1242. ;    12      InputStr 
  1243. ;    8       InputYN 
  1244. ;    24      Gosub 
  1245. ;    21      Return
  1246. ;    15      Inc 
  1247. ;    5       Dec 
  1248. ;    29      Newline
  1249. ;    10      Shell 
  1250. ;    3       InputText 
  1251. ;    2       Dir 
  1252. ;    1       WrUNet 
  1253. ;    6       AnsiPos 
  1254. ;    12      FreshLine
  1255. ;    5       SPrintLn 
  1256. ;    3       MPrintLn 
  1257. ;    3       AdjBytes 
  1258. ;    1       Copy 
  1259. ;
  1260. ;
  1261. ; ■ Functions used :
  1262. ;
  1263. ;    8       -
  1264. ;    1       *
  1265. ;    332     +
  1266. ;    53      -
  1267. ;    139     ==
  1268. ;    3       <>
  1269. ;    35      <
  1270. ;    29      <=
  1271. ;    13      >
  1272. ;    58      >=
  1273. ;    201     !
  1274. ;    76      &&
  1275. ;    31      ||
  1276. ;    35      Len(
  1277. ;    6       Upper()
  1278. ;    43      Mid()
  1279. ;    65      Left()
  1280. ;    11      Right()
  1281. ;    23      Space()
  1282. ;    15      Ferr()
  1283. ;    96      Chr()
  1284. ;    10      Asc()
  1285. ;    14      InStr()
  1286. ;    3       LTrim()
  1287. ;    21      RTrim()
  1288. ;    4       Date()
  1289. ;    1       Time()
  1290. ;    8       U_Name()
  1291. ;    4       U_Bdl()
  1292. ;    1       StripAtx()
  1293. ;    4       Strip()
  1294. ;    3       Inkey()
  1295. ;    10      String()
  1296. ;    1       Mask_Num()
  1297. ;    3       Mask_File()
  1298. ;    3       Mask_Ascii()
  1299. ;    22      CurConf()
  1300. ;    3       PCBDat()
  1301. ;    35      PPEPath()
  1302. ;    1       PcbNode()
  1303. ;    15      ReadLine()
  1304. ;    2       OnLocal()
  1305. ;    3       UN_Name()
  1306. ;    1       UN_City()
  1307. ;    1       GetToken()
  1308. ;    11      Exist()
  1309. ;    6       GetY()
  1310. ;    2       FileInf()
  1311. ;    32      PPEName()
  1312. ;    1       U_RecNum()
  1313. ;    1       U_InConf()
  1314. ;    11      ToInteger()
  1315. ;    3       ToDWord()
  1316. ;
  1317. ;------------------------------------------------------------------------------
  1318. ;
  1319. ; Analysis flags : MSad
  1320. ;
  1321. ; M - Send text to modem only ■ 4
  1322. ;     Some informations are sent only to the modem, not to the local
  1323. ;     screen, this is a well known way to make stealth backdoors, Check!
  1324. ;     ■ Search for : SENDMODEM, MPRINT, MPRINTLN
  1325. ;
  1326. ; S - Shell to DOS ■ 5
  1327. ;     This may be normal if the PPE need to execute an external command,
  1328. ;     but may be actually anything... nasty (formating HD, rebooting,...)
  1329. ;     or usefull (sorting, maintenance,...). Check!
  1330. ;     ■ Search for : SHELL
  1331. ;
  1332. ; a - Adjust ratio ■ 4
  1333. ;     User's ratio is adjusted by changing the amount of files/bytes
  1334. ;     uploaded. This may be normal for a user editor.
  1335. ;     ■ Search for : ADJBYTES, ADJDBYTES, ADJTBYTES, ADJTFILES
  1336. ;
  1337. ; d - Access PCBOARD.DAT ■ 2
  1338. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  1339. ;     for many PPE so they can find various informations on the system
  1340. ;     (system paths, max number of lines in messages, ...) but it may also
  1341. ;     be a way to gather vital informations.
  1342. ;     ■ Search for : PCBDAT()
  1343. ;
  1344. ;------------------------------------------------------------------------------
  1345. ;
  1346. ; Postprocessing report
  1347. ;
  1348. ;    27      For/Next
  1349. ;    5       While/EndWhile
  1350. ;    114     If/Then or If/Then/Else
  1351. ;    0       Select Case
  1352. ;
  1353. ;------------------------------------------------------------------------------
  1354. ;                 AEGiS Corp - Break the routines, code against the machines!
  1355. ;------------------------------------------------------------------------------
  1356.