home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / T / THTUE100.ZIP / THTUEDIT.PPE (.txt) < prev   
PCBoard Programming Language Executable  |  1994-10-31  |  19KB  |  1,086 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  BOOLEAN004
  20.     Boolean  BOOLEAN005
  21.     Boolean  BOOLEAN006
  22.     Boolean  BOOLEAN007
  23.     Boolean  BOOLEAN008
  24.     Date     DATE002
  25.     Integer  INTEGER004
  26.     Integer  INTEGER005
  27.     Integer  INTEGER006
  28.     Integer  INTEGER007
  29.     Integer  INTEGER008
  30.     Integer  INTEGER009
  31.     Integer  INTEGER010
  32.     Integer  INTEGER011
  33.     Integer  INTEGER012
  34.     Integer  INTEGER013
  35.     Integer  INTEGER014
  36.     Integer  INTEGER015
  37.     Integer  INTEGER016
  38.     Integer  INTEGER017
  39.     Integer  INTEGER018
  40.     Integer  INTEGER019
  41.     String   STRING011
  42.     String   STRING012
  43.     String   STRING013
  44.     String   STRING014
  45.     String   STRING015
  46.     String   STRING016
  47.     String   STRING017
  48.     String   STRING018
  49.     String   STRING019
  50.     String   STRING020
  51.     String   STRING021
  52.     String   STRING022
  53.     String   STRING023
  54.     String   STRING024
  55.     String   STRING025
  56.     String   TSTRING026(1)
  57.     String   TSTRING027(1)
  58.     String   TSTRING028(1)
  59.     String   STRING029
  60.     String   STRING030
  61.     String   STRING031
  62.     String   TSTRING032(1)
  63.     String   STRING033
  64.     String   STRING034
  65.     String   STRING035
  66.     String   STRING036
  67.     String   STRING037
  68.     String   STRING038
  69.     String   STRING039
  70.     String   STRING040
  71.     String   STRING041
  72.     String   STRING042
  73.     String   STRING043
  74.     String   STRING044
  75.     String   STRING045
  76.     String   STRING046
  77.     String   STRING047
  78.     String   STRING048
  79.     String   TSTRING049(1)
  80.     String   TSTRING050(1)
  81.     String   TSTRING051(1)
  82.     String   TSTRING052(1)
  83.     String   TSTRING053(1)
  84.     String   TSTRING054(1)
  85.     String   STRING055
  86.     String   STRING056
  87.     String   STRING057
  88.     String   STRING058
  89.     String   TSTRING059(1)
  90.     String   STRING060
  91.  
  92. ;------------------------------------------------------------------------------
  93.  
  94.     STRING031 = TokenStr()
  95.     RdUNet PcbNode()
  96.     WrUNet PcbNode(), UN_Stat(), UN_Name(), UN_City(), "Running " + PPEName(), ""
  97.     If (!(STRING060 == "0")) Print "" ; PPLC BUG!
  98.     STRING060 = ((((((((((((((((1.12222e+49 + (99 * 10000) * 99) * 1e+64) * 4.54545e+27) * 34343434) * 56) * 6545645) * 4545) * 4343443) * 1e+43) * 6) * 6) * 8) * 5.65657e+20) * 78) * 78) * (6 ^ 565656)) * 1e+10
  99.     STRING021 = ReadLine(PCBDat(), 31)
  100.     INTEGER010 = ReadLine(PCBDat(), 108)
  101.     STRING056 = ReadLine(PCBDat(), 265)
  102.     TSTRING059(0) = Upper(ReadLine(PCBDat(), 2))
  103.     TSTRING059(1) = Upper(ReadLine(PCBDat(), 94))
  104.     FClose -1
  105.     StartDisp 1
  106.     TSTRING026(1) = "R"
  107.     TSTRING026(0) = " "
  108.     TSTRING027(1) = "S"
  109.     TSTRING027(0) = " "
  110.     TSTRING028(1) = "E"
  111.     TSTRING028(0) = " "
  112.     TSTRING032(1) = "S"
  113.     TSTRING032(0) = " "
  114.     TSTRING049(0) = "@X0CNo "
  115.     TSTRING049(1) = "@X0FYes"
  116.     TSTRING050(0) = "@X0CNo "
  117.     TSTRING050(1) = "@X0FYes"
  118.     TSTRING051(0) = "@X0CNo "
  119.     TSTRING051(1) = "@X0FYes"
  120.     TSTRING052(0) = "@X0CNo "
  121.     TSTRING052(1) = "@X0FYes"
  122.     TSTRING053(0) = "@X0CNo "
  123.     TSTRING053(1) = "@X0FYes"
  124.     TSTRING054(0) = "@X0CNo "
  125.     TSTRING054(1) = "@X0FYes"
  126.     STRING055 = Chr(64) + Chr(88) + Chr(48) + Chr(53) + Chr(94 - 10) + Chr(83 - 11) + Chr(95 - 11) + Chr(45) + Chr(95 - 10) + Chr(80 - 11) + Chr(69 - 1) + Chr(75 - 2) + Chr(96 - 12) + Chr(32) + Chr(64) + Chr(88) + Chr(48) + Chr(68) + Chr(118) + Chr(32) + Chr(64) + Chr(88) + Chr(48) + Chr(52) + Chr(49) + Chr(46) + Chr(48) + Chr(48)
  127.     FDefIn 1
  128.     BOOLEAN005 = 1
  129.     BOOLEAN004 = 0
  130.     FOpen 1, PPEPath() + PPEName() + ".CNF", 0, 0
  131.     FDGet STRING011
  132.     FDGet STRING015
  133.     FDGet STRING017
  134.     FDGet STRING016
  135.     FDGet STRING019
  136.     FDGet STRING029
  137.     FDGet STRING040
  138.     FDGet STRING041
  139.     FDGet STRING042
  140.     FDGet STRING043
  141.     FDGet STRING044
  142.     FDGet STRING045
  143.     FDGet STRING035
  144.     FDGet STRING046
  145.     FDGet STRING047
  146.     FDGet STRING048
  147.     FDGet STRING034
  148.     FDGet STRING036
  149.     FDGet STRING037
  150.     FDGet STRING038
  151.     FDGet STRING039
  152.     FDGet STRING057
  153.     FDGet STRING058
  154.     FClose 1
  155.     GetUser
  156.     STRING012 = U_Name()
  157.     INTEGER014 = U_RecNum(STRING012)
  158.     INTEGER004 = U_Bdl()
  159.     INTEGER005 = U_Fdl()
  160.     DATE002 = U_LDate()
  161.     STRING033 = U_Alias
  162.     STRING029 = STRING029 + "." + String(PcbNode())
  163.     If (CurSec() >= STRING011) Goto LABEL001
  164.     Goto LABEL019
  165.     :LABEL001
  166.     If (STRING031 <> Upper("MSG")) Goto LABEL002
  167.     If (Exist(STRING029)) Then
  168.         If (Exist(STRING029)) FOpen 1, STRING029, 0, 0
  169.         FDGet STRING030
  170.         FDGet STRING030
  171.         FDGet STRING030
  172.         FClose 1
  173.         STRING030 = RTrim(Mid(STRING030, 7, 25), " ")
  174.         INTEGER006 = U_RecNum(STRING030)
  175.         Gosub LABEL028
  176.     Endif
  177.     :LABEL002
  178.     Cls
  179.     PrintLn "@X0FPSA'S Present @X0C-> @X05Alias , Verify , Address , Password , Stats , Notes @X07"
  180.     PrintLn STRING055 + Space(2) + TSTRING049(Psa(1)) + "      " + TSTRING054(Psa(2)) + "      " + TSTRING050(Psa(3)) + "        " + TSTRING051(Psa(4)) + "      " + TSTRING052(Psa(5)) + "     " + TSTRING053(Psa(6))
  181.     PrintLn "@X05┌─────────────────────────── @X07User Number @X08[    @X08] @X05──────────────────────────────┐"
  182.     PrintLn "│ @X07[@X0FA@X07] R Name@X08[                         ]@X05│@X07[@X0FL@X07] Security     @X08[                  ] @X05│"
  183.     If (Psa(3)) Then
  184.         PrintLn "│ @X07[@X0FB@X07] Address@X08[                        ]@X05│@X07[@X0FM@X07] Expired Sec. @X08[                  ] @X05│"
  185.         PrintLn "│ @X07[@X0FC@X07] City@X08 [                          ]@X05│@X07[@X0FN@X07] Reg. Ex. Date@X08[                  ] @X05│"
  186.         PrintLn "│ @X07[@X0FD@X07] State@X08[                          ]@X05│@X07[ @X07] # of U/Ls    @X08[                  ] @X05│"
  187.         PrintLn "│ @X07[@X0FE@X07] Note@X08 [                         @X08 ]@X05│@X07[@X0FP@X07] # of D/Ls    @X08[                  ] @X05│"
  188.     Else
  189.         PrintLn "│                                      │@X07[@X0FM@X07] Expired Sec. @X08[                  ] @X05│"
  190.         PrintLn "│                                      │@X07[@X0FN@X07] Reg. Ex. Date@X08[                  ] @X05│"
  191.         PrintLn "│                                      │@X07[ @X07] # of U/Ls    @X08[                  ] @X05│"
  192.         PrintLn "│                                      @X05│@X07[@X0FP@X07] # of D/Ls    @X08[                  ] @X05│"
  193.     Endif
  194.     PrintLn "│ @X07[@X0FF@X07] Voice Phone@X08[                    ]@X05│@X07[ @X07] Bytes U/L    @X08[                  ] @X05│"
  195.     PrintLn "│ @X07[@X0FG@X07] Data Phone @X08[                    ]@X05│@X07[@X0FS@X07] Bytes D/L    @X08[                  ] @X05│"
  196.     PrintLn "│ @X07[@X0FH@X07] Expert Mode@X08[                    ]@X05│@X07[ @X07] File Ratio   @X08[                  ] @X05│"
  197.     PrintLn "│ @X07[@X0FI@X07] Protocol   @X08[                    ]@X05│@X07[ @X07] Byte Ratio   @X08[                  ] @X05│"
  198.     PrintLn "│ @X07[@X0FJ@X07] Page Length@X08[                    ]@X05│@X07[@X0FV@X07] Full Screen  @X08[                  ] @X05│"
  199.     If (Psa(1)) Then
  200.         PrintLn "│ @X07[@X0FK@X07] Alias      @X08[                    ]@X05│@X07[@X0FW@X07] Password     @X08[                  ] @X05│"
  201.     Else
  202.         PrintLn "│                                      @X05│@X07[@X0FW@X07] Password     @X08[                  ] @X05│"
  203.     Endif
  204.     If (Psa(2)) Then
  205.         PrintLn "│ @X07[@X0FO@X07] Verify Info@X08[                    @X08]@X05│                                      @X05│"
  206.     Else
  207.         PrintLn "│                                      @X05│                                      @X05│"
  208.     Endif
  209.     PrintLn "├──────────────────────────────────────┴──────────────────────────────────────┤"
  210.     PrintLn "│ @X07[@X0FX@X07] Comment 1  @X08[                                                          ] @X05│"
  211.     PrintLn "│ @X07[@X0FY@X07] Comment 2  @X08[                                                          ] @X05│"
  212.     PrintLn "└─────────────────────────────────────────────────────────────────────────────┘"
  213.     Print STRING036
  214.     INTEGER015 = GetX()
  215.     Newline
  216.     Print STRING037
  217.     INTEGER018 = GetX()
  218.     INTEGER019 = GetY() - 1
  219.     Newline
  220.     :LABEL003
  221.     Print STRING035
  222.     AnsiPos 43, 3
  223.     Print U_RecNum(U_Name())
  224.     AnsiPos 14, 4
  225.     Print U_Name()
  226.     AnsiPos 15, 5
  227.     If (Psa(3)) Print Left(U_Addr(0), 24)
  228.     AnsiPos 13, 6
  229.     If (Psa(3)) Print Left(U_Addr(2), 26)
  230.     AnsiPos 13, 7
  231.     If (Psa(3)) Print Left(U_Addr(3), 26)
  232.     AnsiPos 13, 8
  233.     Print Left(U_City, 26)
  234.     AnsiPos 19, 9
  235.     Print U_HVPhone
  236.     AnsiPos 19, 10
  237.     Print U_BDPhone
  238.     AnsiPos 19, 11
  239.     Print "  "
  240.     AnsiPos 19, 11
  241.     If (U_Expert == 1) Print "On"
  242.     If (U_Expert == 0) Print "Off"
  243.     AnsiPos 19, 12
  244.     Print U_Trans
  245.     AnsiPos 19, 13
  246.     Print U_PageLen
  247.     AnsiPos 19, 14
  248.     If (Psa(1)) Print U_Alias
  249.     AnsiPos 19, 15
  250.     If (Psa(2)) Print U_Ver
  251.     AnsiPos 19, 17
  252.     Print U_Cmnt1
  253.     AnsiPos 19, 18
  254.     Print U_Cmnt2
  255.     AnsiPos 59, 4
  256.     Print Space(18)
  257.     AnsiPos 59, 4
  258.     Print U_Sec
  259.     AnsiPos 59, 5
  260.     Print U_ExpSec
  261.     AnsiPos 59, 6
  262.     Print U_ExpDate
  263.     AnsiPos 59, 7
  264.     Print U_Ful()
  265.     AnsiPos 59, 8
  266.     Print U_Fdl()
  267.     AnsiPos 59, 9
  268.     Print U_Bul()
  269.     AnsiPos 59, 10
  270.     Print U_Bdl()
  271.     AnsiPos 59, 11
  272.     Print "@FILERATIO@"
  273.     AnsiPos 59, 12
  274.     Print "@BYTERATIO@"
  275.     AnsiPos 59, 13
  276.     Print "  "
  277.     AnsiPos 59, 13
  278.     If (U_FSEP == 0) Then
  279.         If (U_FSE == 0) Print "No"
  280.         If (U_FSE == 1) Print "Yes"
  281.     Else
  282.         If (U_FSEP == 1) Print "Ask"
  283.     Endif
  284.     AnsiPos 59, 14
  285.     Print U_Pwd
  286.     AnsiPos INTEGER018, INTEGER019 + 1
  287.     If (BOOLEAN004 == 1) Return
  288.     :LABEL004
  289.     STRING014 = ""
  290.     :LABEL005
  291.     STRING013 = Upper(Inkey())
  292.     If (STRING013 == "") Goto LABEL005
  293.     If (STRING013 == "A") Then
  294.         AnsiPos 14, 4
  295.         Print Space(25)
  296.         AnsiPos 14, 4
  297.         STRING014 = ""
  298.         InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
  299.         If (STRING014 <> "") Then
  300.             STRING012 = STRING014
  301.             Gosub LABEL030
  302.             Goto LABEL006
  303.         Endif
  304.     Endif
  305.     :LABEL006
  306.     If (STRING013 == "B") Then
  307.         AnsiPos 15, 5
  308.         Print Space(24)
  309.         AnsiPos 15, 5
  310.         STRING014 = ""
  311.         InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
  312.         If (STRING014 <> "") Then
  313.             U_Addr(0) = STRING014
  314.             Gosub LABEL030
  315.             Goto LABEL007
  316.         Endif
  317.     Endif
  318.     :LABEL007
  319.     If (STRING013 == "C") Then
  320.         AnsiPos 13, 6
  321.         Print Space(26)
  322.         AnsiPos 13, 6
  323.         STRING014 = ""
  324.         InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
  325.         If (STRING014 <> "") Then
  326.             U_Addr(2) = STRING014
  327.             Gosub LABEL030
  328.             Goto LABEL008
  329.         Endif
  330.     Endif
  331.     :LABEL008
  332.     If (STRING013 == "D") Then
  333.         AnsiPos 13, 7
  334.         Print Space(26)
  335.         AnsiPos 13, 7
  336.         STRING014 = ""
  337.         InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
  338.         If (STRING014 <> "") Then
  339.             U_Addr(3) = STRING014
  340.             Gosub LABEL030
  341.             Goto LABEL009
  342.         Endif
  343.     Endif
  344.     :LABEL009
  345.     If (STRING013 == "E") Then
  346.         AnsiPos 13, 8
  347.         Print Space(26)
  348.         AnsiPos 13, 8
  349.         STRING014 = ""
  350.         InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
  351.         If (STRING014 <> "") Then
  352.             U_City = STRING014
  353.             Gosub LABEL030
  354.             Goto LABEL010
  355.         Endif
  356.     Endif
  357.     :LABEL010
  358.     If (STRING013 == "F") Then
  359.         AnsiPos 19, 9
  360.         Print Space(18)
  361.         AnsiPos 19, 9
  362.         STRING014 = ""
  363.         InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
  364.         If (STRING014 <> "") Then
  365.             U_HVPhone = STRING014
  366.             Gosub LABEL030
  367.             Goto LABEL011
  368.         Endif
  369.     Endif
  370.     :LABEL011
  371.     If (STRING013 == "G") Then
  372.         AnsiPos 19, 10
  373.         Print Space(18)
  374.         AnsiPos 19, 10
  375.         STRING014 = ""
  376.         InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
  377.         If (STRING014 <> "") Then
  378.             U_BDPhone = STRING014
  379.             Gosub LABEL030
  380.             Goto LABEL012
  381.         Endif
  382.     Endif
  383.     :LABEL012
  384.     If (STRING013 == "H") Then
  385.         AnsiPos 19, 11
  386.         Print Space(18)
  387.         AnsiPos 19, 11
  388.         STRING014 = ""
  389.         InputStr "_", STRING014, 14, 20, "YyNn", 2 + 4 + 4096 + 8
  390.         If (STRING014 == "Y") U_Expert = 1
  391.         If (STRING014 == "N") U_Expert = 0
  392.         Gosub LABEL030
  393.     Endif
  394.     If (STRING013 == "I") Then
  395.         AnsiPos 19, 12
  396.         Print Space(18)
  397.         AnsiPos 19, 12
  398.         STRING014 = U_Trans
  399.         InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096 + 8
  400.         U_Trans = STRING014
  401.         Gosub LABEL030
  402.     Endif
  403.     If (STRING013 == "J") Then
  404.         AnsiPos 19, 13
  405.         Print Space(18)
  406.         AnsiPos 19, 13
  407.         INTEGER017 = U_PageLen
  408.         InputStr "_", INTEGER017, 14, 20, Mask_Ascii(), 2 + 4 + 4096
  409.         U_PageLen = INTEGER017
  410.         Gosub LABEL030
  411.     Endif
  412.     If (STRING013 == "K") Then
  413.         AnsiPos 19, 14
  414.         Print Space(18)
  415.         If (Psa(1)) Then
  416.             AnsiPos 19, 14
  417.             InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
  418.             If (STRING014 <> "") Then
  419.                 U_Alias = STRING014
  420.                 Gosub LABEL030
  421.                 Goto LABEL013
  422.             Endif
  423.         Endif
  424.     Endif
  425.     :LABEL013
  426.     If (STRING013 == "L") Then
  427.         AnsiPos 59, 4
  428.         Print Space(18)
  429.         AnsiPos 59, 4
  430.         STRING014 = ""
  431.         InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
  432.         If (STRING014 <> "") Then
  433.             U_Sec = STRING014
  434.             Gosub LABEL030
  435.             Goto LABEL014
  436.         Endif
  437.     Endif
  438.     :LABEL014
  439.     If (STRING013 == "M") Then
  440.         AnsiPos 59, 5
  441.         Print Space(18)
  442.         AnsiPos 59, 5
  443.         STRING014 = ""
  444.         InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
  445.         If (STRING014 <> "") Then
  446.             U_ExpSec = STRING014
  447.             Gosub LABEL030
  448.         Endif
  449.     Endif
  450.     If (STRING013 == "N") Then
  451.         AnsiPos 59, 6
  452.         Print Space(18)
  453.         AnsiPos 59, 6
  454.         STRING014 = ""
  455.         InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
  456.         U_ExpDate = STRING014
  457.         Gosub LABEL030
  458.     Endif
  459.     If (STRING013 == "O") Then
  460.         AnsiPos 19, 15
  461.         Print Space(18)
  462.         If (Psa(2)) Then
  463.             AnsiPos 19, 15
  464.             STRING014 = ""
  465.             InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
  466.             If (STRING014 <> "") Then
  467.                 U_Ver = STRING014
  468.                 Gosub LABEL030
  469.             Endif
  470.         Endif
  471.     Endif
  472.     If (STRING013 == "P") Then
  473.         AnsiPos 59, 8
  474.         Print Space(18)
  475.         AnsiPos 59, 8
  476.         STRING014 = ""
  477.         InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
  478.         If (STRING014 <> "") Then
  479.             INTEGER005 = STRING014 - INTEGER005
  480.             AdjTFiles INTEGER005
  481.             Gosub LABEL030
  482.         Endif
  483.     Endif
  484.     If (STRING013 == "R") Then
  485.     Endif
  486.     If (STRING013 == "S") Then
  487.         AnsiPos 59, 10
  488.         Print Space(18)
  489.         AnsiPos 59, 10
  490.         STRING014 = ""
  491.         InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
  492.         If (STRING014 <> "") Then
  493.             INTEGER004 = STRING014 - INTEGER004
  494.             AdjTBytes INTEGER004
  495.             Gosub LABEL030
  496.         Endif
  497.     Endif
  498.     If (STRING013 == "T") Then
  499.     Endif
  500.     If (STRING013 == "U") Then
  501.     Endif
  502.     If (STRING013 == "V") Then
  503.         AnsiPos 59, 13
  504.         Print Space(18)
  505.         AnsiPos 59, 13
  506.         STRING014 = ""
  507.         InputStr "_", STRING014, 14, 20, "YyNnAa", 2 + 4 + 4096 + 8
  508.         If (STRING014 == "Y") Then
  509.             U_FSEP = 0
  510.             U_FSE = 1
  511.         Endif
  512.         If (STRING014 == "N") Then
  513.             U_FSEP = 0
  514.             U_FSE = 0
  515.         Endif
  516.         If (STRING014 == "A") U_FSEP = 1
  517.         Gosub LABEL030
  518.     Endif
  519.     If (STRING013 == "W") Then
  520.         If (Psa(4)) Then
  521.             AnsiPos 1, 22
  522.             Print STRING057 + STRING056 + STRING058
  523.         Endif
  524.         AnsiPos 59, 14
  525.         Print Space(18)
  526.         AnsiPos 59, 14
  527.         STRING014 = ""
  528.         InputStr "_", STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096
  529.         If (STRING014 <> "") Goto LABEL015
  530.         AnsiPos 1, 22
  531.         Print Space(78)
  532.         Goto LABEL016
  533.         :LABEL015
  534.         U_Pwd = STRING014
  535.         Gosub LABEL030
  536.         AnsiPos 1, 22
  537.         Print Space(78)
  538.         Goto LABEL016
  539.     Endif
  540.     :LABEL016
  541.     If (STRING013 == "1") Then
  542.         AnsiPos INTEGER015, INTEGER019 + 1
  543.         SaveScrn
  544.         Gosub LABEL022
  545.         RestScrn
  546.         AnsiPos INTEGER015, INTEGER019 + 1
  547.         STRING013 = ""
  548.         STRING014 = ""
  549.         BOOLEAN004 = 0
  550.         Gosub LABEL027
  551.         Goto LABEL017
  552.     Endif
  553.     :LABEL017
  554.     If (STRING013 == "X") Then
  555.         AnsiPos 19, 17
  556.         Print Space(36)
  557.         AnsiPos 19, 17
  558.         STRING014 = ""
  559.         InputStr "_", STRING014, 14, 40, Mask_Ascii(), 2 + 4 + 4096
  560.         If (STRING014 <> "") Then
  561.             U_Cmnt1 = STRING014
  562.             Gosub LABEL030
  563.         Endif
  564.     Endif
  565.     If (STRING013 == "Y") Then
  566.         AnsiPos 19, 18
  567.         Print Space(36)
  568.         AnsiPos 19, 18
  569.         STRING014 = ""
  570.         InputStr "_", STRING014, 14, 40, Mask_Ascii(), 2 + 4 + 4096
  571.         If (STRING014 <> "") Then
  572.             U_Cmnt2 = STRING014
  573.             Gosub LABEL030
  574.         Endif
  575.     Endif
  576.     If (STRING013 == "+") Then
  577.         INTEGER006 = U_RecNum(U_Name())
  578.         INTEGER006 = INTEGER006 + 1
  579.         Gosub LABEL028
  580.         BOOLEAN004 = 1
  581.         Gosub LABEL027
  582.         Gosub LABEL003
  583.     Endif
  584.     If (STRING013 == "-") Then
  585.         INTEGER006 = U_RecNum(U_Name())
  586.         INTEGER006 = INTEGER006 - 1
  587.         Gosub LABEL028
  588.         BOOLEAN004 = 1
  589.         Gosub LABEL027
  590.         Gosub LABEL003
  591.     Endif
  592.     If (STRING013 == "=") Then
  593.         AnsiPos 24, 22
  594.         InputStr STRING034, STRING014, 14, 3, "1234567890", 2 + 4 + 4096 + 32
  595.         If ((STRING014 == 1) && (INTEGER014 <> 1)) STRING014 = 2
  596.         INTEGER006 = STRING014
  597.         Gosub LABEL028
  598.         BOOLEAN004 = 1
  599.         Gosub LABEL027
  600.         Gosub LABEL003
  601.     Endif
  602.     If (STRING013 == "!") Then
  603.         U_Sec = STRING016
  604.         Gosub LABEL030
  605.     Endif
  606.     If (STRING013 == "*") Then
  607.         U_Sec = STRING017
  608.         Gosub LABEL030
  609.     Endif
  610.     If (STRING013 == "%") Then
  611.         U_Sec = STRING015
  612.         Gosub LABEL030
  613.     Endif
  614.     If (STRING013 == "?") Then
  615.         AnsiPos 78, 22
  616.         SaveScrn
  617.         AnsiPos 24, 22
  618.         Print Space(66)
  619.         AnsiPos 24, 22
  620.         Print "@X07List all users on system?"
  621.         AnsiPos 50, 22
  622.         Print "@X1FYES"
  623.         AnsiPos 55, 22
  624.         Print "@X08NO"
  625.         BOOLEAN006 = 1
  626.         BOOLEAN007 = 1
  627.         STRING018 = ""
  628.         While (BOOLEAN007) Do
  629.             While (STRING018 == "") Do
  630.                 STRING018 = Inkey()
  631.             EndWhile
  632.             If (((STRING018 == "LEFT") || (STRING018 == "RIGHT")) || (STRING018 == Chr(13))) Then
  633.                 If (STRING018 == Chr(13)) Break
  634.                 If ((STRING018 == "RIGHT") && (BOOLEAN006 == 1)) Then
  635.                     AnsiPos 50, 22
  636.                     Print "@X08YES"
  637.                     AnsiPos 55, 22
  638.                     Print "@X1FNO"
  639.                     BOOLEAN006 = 0
  640.                     STRING018 = ""
  641.                 Endif
  642.                 If ((STRING018 == "LEFT") && (BOOLEAN006 == 1)) Then
  643.                     AnsiPos 50, 22
  644.                     Print "@X08YES"
  645.                     AnsiPos 55, 22
  646.                     Print "@X1FNO"
  647.                     BOOLEAN006 = 0
  648.                     STRING018 = ""
  649.                 Endif
  650.                 If ((STRING018 == "LEFT") && (BOOLEAN006 == 0)) Then
  651.                     AnsiPos 50, 22
  652.                     Print "@X1FYES"
  653.                     AnsiPos 55, 22
  654.                     Print "@X08NO"
  655.                     BOOLEAN006 = 1
  656.                     STRING018 = ""
  657.                 Endif
  658.                 If ((STRING018 == "RIGHT") && (BOOLEAN006 == 0)) Then
  659.                     AnsiPos 50, 22
  660.                     Print "@X1FYES"
  661.                     AnsiPos 55, 22
  662.                     Print "@X08NO"
  663.                     BOOLEAN006 = 1
  664.                     STRING018 = ""
  665.                 Endif
  666.             Endif
  667.             STRING018 = ""
  668.         EndWhile
  669.         If (BOOLEAN006 == 1) Then
  670.             PrintLn "@CLS@"
  671.             STRING014 = ""
  672.             InputStr STRING038, STRING014, 14, 20, "aASsLlNn", 2 + 4 + 4096 + 8
  673.             Newlines 1
  674.             If (STRING014 == "") Then
  675.                 BOOLEAN004 = 1
  676.                 Gosub LABEL001
  677.             Endif
  678.             If (STRING014 == "A") Then
  679.                 BOOLEAN007 = 1
  680.                 INTEGER006 = 1
  681.                 While (BOOLEAN007) Do
  682.                     Gosub LABEL029
  683.                     If (CurUser() == -1) Break
  684.                     PrintLn U_Name()
  685.                     INTEGER006 = INTEGER006 + 1
  686.                 EndWhile
  687.                 Newlines 1
  688.                 BOOLEAN008 = 1
  689.                 Gosub LABEL021
  690.             Endif
  691.             If (STRING014 == "N") Then
  692.                 BOOLEAN007 = 1
  693.                 INTEGER006 = 2
  694.                 While (BOOLEAN007) Do
  695.                     Gosub LABEL029
  696.                     If (CurUser() == -1) Break
  697.                     If (STRING019 == U_Sec) PrintLn U_Name()
  698.                     INTEGER006 = INTEGER006 + 1
  699.                 EndWhile
  700.                 Newlines 1
  701.                 BOOLEAN008 = 1
  702.                 Gosub LABEL021
  703.             Endif
  704.             If (STRING014 == "S") Then
  705.                 BOOLEAN007 = 1
  706.                 INTEGER006 = 1
  707.                 While (BOOLEAN007) Do
  708.                     Gosub LABEL029
  709.                     If (CurUser() == -1) Break
  710.                     If (STRING015 == U_Sec) PrintLn U_Name()
  711.                     INTEGER006 = INTEGER006 + 1
  712.                 EndWhile
  713.                 BOOLEAN008 = 1
  714.                 Newlines 1
  715.                 Gosub LABEL021
  716.             Endif
  717.             If (STRING014 == "L") Then
  718.                 BOOLEAN007 = 1
  719.                 INTEGER006 = 1
  720.                 While (BOOLEAN007) Do
  721.                     Gosub LABEL029
  722.                     If (CurUser() == -1) Break
  723.                     If (STRING016 == U_Sec) PrintLn U_Name()
  724.                     INTEGER006 = INTEGER006 + 1
  725.                 EndWhile
  726.                 BOOLEAN008 = 1
  727.                 Newlines 1
  728.                 Gosub LABEL021
  729.             Endif
  730.             Goto LABEL018
  731.         Endif
  732.         Gosub LABEL020
  733.     Endif
  734.     :LABEL018
  735.     If (STRING013 == "Q") Then
  736.         Goto LABEL019
  737.     Endif
  738.     BOOLEAN004 = 1
  739.     Gosub LABEL003
  740.     Goto LABEL004
  741.     :LABEL019
  742.     AnsiPos 0, 23
  743.     FReAltUser
  744.     KeyFlush
  745.     End
  746.     :LABEL020
  747.     AnsiPos 6, 22
  748.     Print "@X0F" + Space(74)
  749.     AnsiPos 14, 22
  750.     :LABEL021
  751.     STRING014 = ""
  752.     InputStr STRING039, STRING014, 14, 20, Mask_Ascii(), 2 + 4 + 4096 + 8 + 32
  753.     If (Len(STRING014) > 1) Then
  754.         If ((STRING014 == 1) && (INTEGER014 <> 1)) STRING014 = 2
  755.         INTEGER006 = U_RecNum(STRING014)
  756.         If (INTEGER006 == -1) Then
  757.             AnsiPos 26, 22
  758.             Print "Invalid User"
  759.             Delay 15
  760.             AnsiPos 26, 22
  761.             Print Space(18)
  762.             If (BOOLEAN008 == 0) Then
  763.                 Goto LABEL021
  764.             Endif
  765.             Goto LABEL020
  766.         Endif
  767.         Gosub LABEL028
  768.         BOOLEAN004 = 1
  769.         RestScrn
  770.         Gosub LABEL027
  771.         Gosub LABEL003
  772.     Else
  773.         AnsiPos 12, 22
  774.         Gosub LABEL027
  775.         RestScrn
  776.         Goto LABEL003
  777.         Goto LABEL001
  778.     Endif
  779.     Return
  780.     :LABEL022
  781.     Cls
  782.     DispFile PPEPath() + PPEName() + ".dsp", 0
  783.     INTEGER016 = GetY()
  784.     AnsiPos 15, 1
  785.     Print "@X09 User is @X0F-> @X0D" + U_Name()
  786.     :LABEL023
  787.     INTEGER015 = 4
  788.     INTEGER007 = 5
  789.     INTEGER008 = 2
  790.     If (INTEGER006 == 0) INTEGER006 = 1
  791.     FOpen 1, STRING021 + ".@@@", 0, 0
  792.     For INTEGER009 = 0 To INTEGER010
  793.         FSeek 1, INTEGER008, 0
  794.         FDRead STRING020, 25
  795.         AnsiPos INTEGER015, INTEGER007
  796.         Print STRING040 + String(INTEGER009)
  797.         AnsiPos INTEGER015 + 11, INTEGER007
  798.         Print STRING041 + STRING020
  799.         AnsiPos INTEGER015 + 26, INTEGER007
  800.         Print STRING042 + TSTRING026(ConfReg(INTEGER009))
  801.         Print STRING043 + TSTRING027(ConfSel(INTEGER009))
  802.         Print STRING044 + TSTRING028(ConfExp(INTEGER009))
  803.         Print STRING045 + TSTRING032(ConfSys(INTEGER009))
  804.         INTEGER008 = INTEGER008 + 548
  805.         Inc INTEGER007
  806.         If (INTEGER007 == INTEGER016 - 1) Then
  807.             INTEGER015 = 42
  808.             INTEGER007 = 5
  809.         Endif
  810.     Next
  811.     FClose 1
  812.     Newline
  813.     :LABEL024
  814.     AnsiPos 4, INTEGER016
  815.     InputStr STRING046, STRING025, "", 1, "SsUuQq", 0 + 32 + 8
  816.     If (STRING025 == "") Goto LABEL024
  817.     If (STRING025 == "Q") Return
  818.     :LABEL025
  819.     AnsiPos 4, INTEGER016
  820.     InputStr STRING047, STRING022, "", 3, "Qq0123456789", 0 + 8 + 32
  821.     If (STRING022 == "Q") Return
  822.     If (STRING022 > INTEGER010) Goto LABEL025
  823.     If (STRING022 == "") Goto LABEL025
  824.     If (STRING022 <> "") Then
  825.         INTEGER012 = STRING022
  826.         AnsiPos 4, INTEGER016
  827.         InputStr STRING048, STRING023, "", 3, "EeSsRr", 0 + 8
  828.         INTEGER011 = Len(STRING023)
  829.         If (INTEGER011 > 1) Then
  830.             STRING023 = Mid(STRING023, 1, 1) + " " + Mid(STRING023, 2, 1) + " " + Mid(STRING023, 3, 1)
  831.         Endif
  832.         Tokenize STRING023
  833.         For INTEGER009 = 1 To 3
  834.             GetToken STRING024
  835.             If (STRING024 == "R") INTEGER013 = 1
  836.             If (STRING024 == "S") INTEGER013 = INTEGER013 + 4
  837.             If (STRING024 == "E") INTEGER013 = INTEGER013 + 2
  838.         Next
  839.         Gosub LABEL028
  840.         If (STRING025 == "S") Then
  841.             ConfFlag INTEGER012, INTEGER013
  842.             PutUser
  843.             Goto LABEL026
  844.         Endif
  845.         ConfUnflag INTEGER012, INTEGER013
  846.         PutUser
  847.         :LABEL026
  848.         Gosub LABEL028
  849.         Goto LABEL023
  850.     Endif
  851.     :LABEL027
  852.     AnsiPos 43, 3
  853.     Print Space(3)
  854.     AnsiPos 14, 4
  855.     Print Space(25)
  856.     AnsiPos 15, 5
  857.     Print Space(24)
  858.     AnsiPos 13, 6
  859.     Print Space(26)
  860.     AnsiPos 13, 7
  861.     Print Space(26)
  862.     AnsiPos 13, 8
  863.     Print Space(26)
  864.     AnsiPos 19, 9
  865.     Print Space(20)
  866.     AnsiPos 19, 10
  867.     Print Space(20)
  868.     AnsiPos 19, 11
  869.     Print Space(20)
  870.     AnsiPos 19, 11
  871.     Print Space(20)
  872.     AnsiPos 19, 12
  873.     Print Space(20)
  874.     AnsiPos 19, 13
  875.     Print Space(20)
  876.     AnsiPos 19, 14
  877.     Print Space(20)
  878.     AnsiPos 19, 15
  879.     Print Space(20)
  880.     AnsiPos 19, 17
  881.     Print Space(58)
  882.     AnsiPos 19, 18
  883.     Print Space(58)
  884.     AnsiPos 59, 4
  885.     Print Space(18)
  886.     AnsiPos 59, 4
  887.     Print Space(18)
  888.     AnsiPos 59, 5
  889.     Print Space(18)
  890.     AnsiPos 59, 6
  891.     Print Space(18)
  892.     AnsiPos 59, 7
  893.     Print Space(18)
  894.     AnsiPos 59, 8
  895.     Print Space(18)
  896.     AnsiPos 59, 9
  897.     Print Space(18)
  898.     AnsiPos 59, 10
  899.     Print Space(18)
  900.     AnsiPos 59, 11
  901.     Print Space(18)
  902.     AnsiPos 59, 12
  903.     Print Space(18)
  904.     AnsiPos 59, 13
  905.     Print Space(18)
  906.     AnsiPos 59, 13
  907.     Print Space(18)
  908.     AnsiPos 59, 14
  909.     Print Space(18)
  910.     Return
  911.     :LABEL028
  912.     If ((INTEGER006 == 1) && (INTEGER014 <> 1)) INTEGER006 = 2
  913.     GetAltUser INTEGER006
  914.     If (CurUser() == -1) Then
  915.         GetAltUser 2
  916.         Print "@X8CLost the Record Numer"
  917.     Endif
  918.     Return
  919.     :LABEL029
  920.     If ((INTEGER006 == 1) && (INTEGER014 <> 1)) INTEGER006 = 2
  921.     GetAltUser INTEGER006
  922.     Return
  923.     :LABEL030
  924.     PutUser
  925.     Return
  926.  
  927. ;------------------------------------------------------------------------------
  928. ;
  929. ; Usage report (before postprocessing)
  930. ;
  931. ; ■ Statements used :
  932. ;
  933. ;    1       End
  934. ;    2       Cls
  935. ;    132     Goto 
  936. ;    161     Let 
  937. ;    112     Print 
  938. ;    30      PrintLn 
  939. ;    126     If 
  940. ;    1       ConfFlag 
  941. ;    1       ConfUnflag 
  942. ;    1       DispFile 
  943. ;    3       FOpen 
  944. ;    4       FClose 
  945. ;    1       StartDisp 
  946. ;    1       GetUser
  947. ;    3       PutUser
  948. ;    27      InputStr 
  949. ;    53      Gosub 
  950. ;    8       Return
  951. ;    1       Delay 
  952. ;    1       Inc 
  953. ;    3       Newline
  954. ;    5       Newlines 
  955. ;    1       Tokenize 
  956. ;    1       GetToken 
  957. ;    1       RdUNet 
  958. ;    1       WrUNet 
  959. ;    133     AnsiPos 
  960. ;    2       SaveScrn
  961. ;    3       RestScrn
  962. ;    1       FSeek 
  963. ;    1       FDefIn 
  964. ;    26      FDGet 
  965. ;    1       FDRead 
  966. ;    1       KeyFlush
  967. ;    3       GetAltUser 
  968. ;    1       AdjTBytes 
  969. ;    1       AdjTFiles 
  970. ;    1       FReAltUser
  971. ;
  972. ;
  973. ; ■ Functions used :
  974. ;
  975. ;    7       -
  976. ;    1       ^
  977. ;    18      *
  978. ;    137     +
  979. ;    13      -
  980. ;    90      ==
  981. ;    22      <>
  982. ;    2       <
  983. ;    2       <=
  984. ;    3       >
  985. ;    5       >=
  986. ;    88      !
  987. ;    12      &&
  988. ;    4       ||
  989. ;    2       Len(
  990. ;    4       Upper()
  991. ;    4       Mid()
  992. ;    4       Left()
  993. ;    57      Space()
  994. ;    30      Chr()
  995. ;    1       RTrim()
  996. ;    10      U_Name()
  997. ;    1       U_LDate()
  998. ;    1       U_Ful()
  999. ;    2       U_Fdl()
  1000. ;    2       U_Bdl()
  1001. ;    1       U_Bul()
  1002. ;    2       Inkey()
  1003. ;    2       String()
  1004. ;    20      Mask_Ascii()
  1005. ;    5       PCBDat()
  1006. ;    2       PPEPath()
  1007. ;    3       PcbNode()
  1008. ;    5       ReadLine()
  1009. ;    1       UN_Stat()
  1010. ;    1       UN_Name()
  1011. ;    1       UN_City()
  1012. ;    1       CurSec()
  1013. ;    2       Exist()
  1014. ;    1       TokenStr()
  1015. ;    2       GetX()
  1016. ;    2       GetY()
  1017. ;    17      Psa()
  1018. ;    3       PPEName()
  1019. ;    6       U_RecNum()
  1020. ;    1       ConfReg()
  1021. ;    1       ConfExp()
  1022. ;    1       ConfSel()
  1023. ;    1       ConfSys()
  1024. ;    5       CurUser()
  1025. ;
  1026. ;------------------------------------------------------------------------------
  1027. ;
  1028. ; Analysis flags : FWRadH
  1029. ;
  1030. ; F - Change conference flags status ■ 2
  1031. ;     This may be normal for a SELECT replacement but it may also be
  1032. ;     a way to get access to conferences a user is not allowed to.
  1033. ;     ■ Search for : CONFFLAG, CONFUNFLAG
  1034. ;
  1035. ; W - Write user ■ 5
  1036. ;     Program writes a user record. Although this may be normal for a
  1037. ;     User Editor, it may also be a way to modify an account level.
  1038. ;     ■ Search for : PUTUSER
  1039. ;
  1040. ; R - Read user ■ 5
  1041. ;     User records are read, this may signify that someone wants to get
  1042. ;     various informations about a user (for example his password), but
  1043. ;     this may also be normal for a program accessing user records (for
  1044. ;     example a User Editor)
  1045. ;     ■ Search for : GETALTUSER
  1046. ;
  1047. ; a - Adjust ratio ■ 4
  1048. ;     User's ratio is adjusted by changing the amount of files/bytes
  1049. ;     uploaded. This may be normal for a user editor.
  1050. ;     ■ Search for : ADJBYTES, ADJDBYTES, ADJTBYTES, ADJTFILES
  1051. ;
  1052. ; d - Access PCBOARD.DAT ■ 2
  1053. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  1054. ;     for many PPE so they can find various informations on the system
  1055. ;     (system paths, max number of lines in messages, ...) but it may also
  1056. ;     be a way to gather vital informations.
  1057. ;     ■ Search for : PCBDAT()
  1058. ;
  1059. ; H - Read Password or Password History ■ 5
  1060. ;     Program is reading the user's password or last password history
  1061. ;     This may be ok for a password manager, but it is very suspect. Check!
  1062. ;     ■ Search for : U_PWDHIST, U_PWD
  1063. ;
  1064. ;
  1065. ;------------------------------------------------------------------------------
  1066. ;
  1067. ;     One or more PPLC bugs were found, this is not a PPLX error, but PPLX is  
  1068. ;     reporting the error ;)  Some statements  like VAR = !!!!10, VAR = !0*!0  
  1069. ;     or similar things are not handled  correctly by PPLC, some may use this  
  1070. ;     to  avoid a  correct decompilation...  This doesn't mean that there  is  
  1071. ;     actually an error, but the probability of error is high...               
  1072. ;     ■ Search for : PPLC BUG
  1073. ;
  1074. ;------------------------------------------------------------------------------
  1075. ;
  1076. ; Postprocessing report
  1077. ;
  1078. ;    2       For/Next
  1079. ;    6       While/EndWhile
  1080. ;    77      If/Then or If/Then/Else
  1081. ;    0       Select Case
  1082. ;
  1083. ;------------------------------------------------------------------------------
  1084. ;                 AEGiS Corp - Break the routines, code against the machines!
  1085. ;------------------------------------------------------------------------------
  1086.