home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 17 / CD_ASCQ_17_101194.iso / vrac / suggest1.zip / SUGGEST.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-09-23  |  17KB  |  800 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Integer  INTEGER001
  23.     Integer  INTEGER002
  24.     Integer  INTEGER003
  25.     Integer  INTEGER004
  26.     Integer  INTEGER005
  27.     Integer  INTEGER006
  28.     Integer  INTEGER007
  29.     Integer  TINTEGER008(1)
  30.     Integer  INTEGER009
  31.     Integer  INTEGER010
  32.     Integer  INTEGER011
  33.     Integer  INTEGER012
  34.     String   STRING001
  35.     String   STRING002
  36.     String   STRING003
  37.     String   STRING004
  38.     String   TSTRING005(1)
  39.     String   STRING006
  40.     String   STRING007
  41.     String   STRING008
  42.     String   STRING009
  43.     String   STRING010
  44.     String   STRING011
  45.     String   TSTRING012(1)
  46.     String   STRING013
  47.     String   STRING014
  48.     String   STRING015
  49.     String   STRING016
  50.     String   STRING017
  51.     String   STRING018
  52.     String   STRING019
  53.     String   STRING020
  54.     String   STRING021
  55.     String   STRING022
  56.     String   STRING023
  57.     String   STRING024
  58.     String   STRING025
  59.     String   STRING026
  60.     String   STRING027
  61.     String   STRING028
  62.     String   STRING029
  63.     String   STRING030
  64.     String   STRING031
  65.     String   TSTRING032(21)
  66.     String   STRING033
  67.     String   TSTRING034(1)
  68.     String   STRING035
  69.     String   STRING036
  70.     String   STRING037
  71.     String   STRING038
  72.     String   STRING039
  73.     String   STRING040
  74.     String   STRING041
  75.     String   STRING042
  76.     String   STRING043
  77.     String   STRING044
  78.     String   STRING045
  79.     String   STRING046
  80.     String   STRING047
  81.     String   STRING048
  82.     String   STRING049
  83.     String   STRING050
  84.     String   STRING051
  85.     String   STRING052
  86.     String   STRING053
  87.     String   STRING054
  88.     String   STRING055
  89.     String   STRING056
  90.  
  91. ;------------------------------------------------------------------------------
  92.  
  93.     GetToken STRING051
  94.     GetUser
  95.     If (Exist(PPEPath() + "door.lck")) Goto LABEL001
  96.     FOpen 1, PPEPath() + "door.lck", 2, 0
  97.     FPutLn 1, "Door In Use - Security Lock Enabled!"
  98.     FClose 1
  99.     Goto LABEL002
  100.     Goto LABEL002
  101.     :LABEL001
  102.     INTEGER012 = PcbNode()
  103.     FAppend 1, PPEPath() + "Waiting.Lst", 2, 0
  104.     FPutLn 1, INTEGER012
  105.     FClose 1
  106.     Newlines 1
  107.     PrintLn "@X04█@X4E· @X0A Sorry but another user is in the Suggestion Box, try again in a minute @X04█@X4E·@X04█@X0F"
  108.     End
  109.     :LABEL002
  110.     If (Exist(PPEPath() + PPEName() + ".Key")) Goto LABEL003
  111.     BOOLEAN003 = 0
  112.     Goto LABEL004
  113.     :LABEL003
  114.     FOpen 2, PPEPath() + PPEName() + ".key", 0, 0
  115.     FGet 2, STRING046
  116.     FGet 2, STRING047
  117.     FGet 2, STRING048
  118.     FClose 2
  119.     STRING049 = Mid(STRING046, 2, 1)
  120.     STRING050 = Mid(STRING047, 5, 1)
  121.     STRING049 = Asc(STRING049) + 77 - 100
  122.     STRING050 = Asc(STRING050) + 77 - 100
  123.     If ((Mid(STRING048, 1, 2) == STRING049) && (Mid(STRING048, 79, 2) == STRING050)) Then
  124.         BOOLEAN003 = 1
  125.     Else
  126.         BOOLEAN003 = 0
  127.     Endif
  128.     :LABEL004
  129.     If (BOOLEAN003 == 1) Then
  130.         Cls
  131.         PrintLn "@X1C░▒▓█ @X1EGO/4 Software's Suggestion Box @X1C█▓▒░                     @X1F(c)94 GO/4 Software@X0F"
  132.         Delay (1 * 182) / 10
  133.     Else
  134.         Cls
  135.         For INTEGER003 = 1 To 10
  136.             PrintLn "@X0EThis is @X8CUNREGISTERED @X0Esoftware - Please encourage your sysop to register it!@X0F"
  137.             PrintLn "                      @X0AGO/4 Software's Suggestion Box@X0F"
  138.             Delay (1 * 182) / 10
  139.             If (INTEGER003 == 10) Delay 2 * 182 / 10
  140.         Next
  141.     Endif
  142.     BOOLEAN002 = 1
  143.     If (Upper(STRING051) == "QUIK") BOOLEAN002 = 0
  144.     STRING008 = "■"
  145.     INTEGER007 = 15
  146.     RdUNet PcbNode()
  147.     WrUNet PcbNode(), UN_Stat(), UN_Name(), "Running " + PPEName(), "", ""
  148.     GetUser
  149.     FOpen 6, PPEPath() + PPEName() + ".Sec", 0, 0
  150.     :LABEL005
  151.     If (Ferr(6)) Goto LABEL006
  152.     FGet 6, STRING019
  153.     If (STRING019 == CurSec()) Then
  154.         Newlines 2
  155.         PrintLn "@X10┌─────────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  156.         PrintLn "@X10│ @X1E░▒▓█ @X1BWe are sorry, but the suggestion door is only for subscriber use.@X1E █▓▒░ @X19│@X0F"
  157.         PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────┘@X0F"
  158.         Newlines 1
  159.         Delay (5 * 182) / 10
  160.     Else
  161.         Goto LABEL005
  162.         :LABEL006
  163.         FClose 6
  164.         If (Exist(PPEPath() + PPEName() + ".Nam")) Goto LABEL007
  165.         FCreate 7, PPEPath() + PPEName() + ".nam", 2, 0
  166.         FClose 7
  167.         :LABEL007
  168.         If (Exist(PPEPath() + PPEName() + ".Cfg")) Goto LABEL008
  169.         FCreate 7, PPEPath() + PPEName() + ".Cfg", 2, 0
  170.         FPutLn 7, "0"
  171.         FClose 7
  172.         Cls
  173.         PrintLn "@X0E        You are the first user!  Please give us your suggestion below.@X0F"
  174.         Newlines 1
  175.         Gosub LABEL010
  176.         :LABEL008
  177.         INTEGER006 = ReadLine(PPEPath() + PPEName() + ".cfg", 1)
  178.         Redim TSTRING005, INTEGER006
  179.         Redim TSTRING012, INTEGER006
  180.         Redim TINTEGER008, INTEGER006
  181.         Redim TSTRING034, INTEGER006
  182.         INTEGER004 = 1
  183.         INTEGER005 = INTEGER006
  184.         BOOLEAN001 = 0
  185.         If (BOOLEAN002) Goto LABEL018
  186.         BOOLEAN002 = 0
  187.         :LABEL009
  188.         FCloseAll
  189.         FOpen 1, PPEPath() + PPEName() + ".DAT", 0, 0
  190.         Gosub LABEL016
  191.         If (BOOLEAN001) Then
  192.             PrintLn "                                                                      @X0EYea  @X0CNey@X0F"
  193.         Else
  194.             Newline
  195.         Endif
  196.         For INTEGER003 = INTEGER004 To INTEGER005
  197.             FGet 1, STRING007
  198.             STRING021 = Left(STRING007, 5)
  199.             STRING021 = LTrim(STRING021, "0")
  200.             If (Len(STRING021) == 0) STRING021 = 0
  201.             STRING022 = Mid(STRING007, 7, 5)
  202.             STRING022 = LTrim(STRING022, "0")
  203.             If (Len(STRING022) == 0) STRING022 = 0
  204.             STRING013 = Mid(STRING007, 13, 6)
  205.             STRING038 = Mid(STRING007, 20, 1)
  206.             STRING002 = Mid(STRING007, 22, 74)
  207.             STRING002 = Upper(Left(STRING002, 1)) + Mid(STRING002, 2, 73)
  208.             If (STRING038 == "Y") Then
  209.                 STRING040 = "@X8D@X0B"
  210.             Else
  211.                 STRING040 = " "
  212.             Endif
  213.             If (BOOLEAN001 == 0) Then
  214.                 If ((INTEGER003 > 0) && (INTEGER003 < 10)) PrintLn " @X0E ", INTEGER003, "@X0A)@X0B", STRING040, STRING002
  215.                 If ((INTEGER003 >= 10) && (INTEGER003 < 100)) PrintLn "@X0E ", INTEGER003, "@X0A)@X0B", STRING040, STRING002
  216.                 If ((INTEGER003 >= 100) && (INTEGER003 < 1000)) PrintLn "@X0E", INTEGER003, "@X0A)@X0B", STRING040, STRING002
  217.             Else
  218.                 If ((INTEGER003 > 0) && (INTEGER003 < 10)) PrintLn " @X0E ", INTEGER003, "@X0A)@X0B", STRING040, Left(STRING002, 64) , "@X09@POS:66@ ", STRING021, "@POS:76@", STRING022
  219.                 If ((INTEGER003 >= 10) && (INTEGER003 < 100)) PrintLn "@X0E ", INTEGER003, "@X0A)@X0B", STRING040, Left(STRING002, 64) , "@X09@POS:66@ ", STRING021, "@POS:76@", STRING022
  220.                 If ((INTEGER003 >= 100) && (INTEGER003 < 1000)) PrintLn "@X0E", INTEGER003, "@X0A)@X0B", STRING040, Left(STRING002, 64) , "@X09@POS:66@ ", STRING021, "@POS:76@", STRING022
  221.             Endif
  222.             If (INTEGER003 >= INTEGER007) Then
  223.                 Gosub LABEL015
  224.                 Gosub LABEL016
  225.             Endif
  226.         Next
  227.         FClose 1
  228.         PrintLn "@X03───────────────────────────────────────────────────────────────────────────────@X0F"
  229.         If (CurSec() >= SysopSec()) PrintLn " @X03Sysop only commands - @X0A(@X0ED@X0A)@X03elete a Suggestion / @X0A(@X0EE@X0A)@X03dit the notes file"
  230.         InputStr " @X0B@X0A(@X0EV@X0A)@X0Bote / @X0A(@X0EA@X0A)@X0Bdd your own / @X0A(@X0EH@X0A)@X0Belp / @X0A(@X0ET@X0A)@X0Boggle / @X0A(@X0EN@X0A)@X0Botes @X8D@X0F @X0B/ @X0A(@X0CQ@X0A)@X0Cuit to BBS _", STRING003, 15, 1, "VAHQTBNDE", 0 + 8
  231.         If ((STRING003 == "T") && (BOOLEAN001 == 0)) Then
  232.             BOOLEAN001 = 1
  233.             INTEGER007 = 15
  234.             Goto LABEL009
  235.         ElseIf ((STRING003 == "T") && (BOOLEAN001 == 1)) Then
  236.             BOOLEAN001 = 0
  237.             INTEGER007 = 15
  238.             Goto LABEL009
  239.         Endif
  240.         If (STRING003 == "V") Goto LABEL011
  241.         If (STRING003 == "A") Goto LABEL010
  242.         If (STRING003 == "H") Goto LABEL018
  243.         If ((STRING003 == "D") && (CurSec() >= SysopSec())) Goto LABEL019
  244.         If (STRING003 == "B") Goto LABEL026
  245.         If (STRING003 == "N") Goto LABEL027
  246.         If ((STRING003 == "E") && (CurSec() >= SysopSec())) Goto LABEL028
  247.         Select Case (STRING003)
  248.             Case "Q"
  249.                 Gosub LABEL017
  250.                 Cls
  251.                 INTEGER007 = 15
  252.                 Goto LABEL009
  253.                 If (STRING003 == "") Then
  254.                     INTEGER007 = 15
  255.                     Goto LABEL009
  256.                 Endif
  257.                 :LABEL010
  258.                 If ((INTEGER005 >= 5) && !BOOLEAN003) Then
  259.                     Backup 80
  260.                     ClrEol
  261.                     PrintLn "    @X0C Sorry but this is an @X8Cunregistered@X0C version, no more additions allowed!"
  262.                     PrintLn "@X0C  Please have your sysop register the suggestion box to remove all limitations@X0F"
  263.                     Delay (4 * 182) / 10
  264.                     INTEGER007 = 15
  265.                     BOOLEAN002 = 0
  266.                     Goto LABEL008
  267.                 Endif
  268.                 STRING006 = ""
  269.                 STRING014 = ""
  270.                 Backup 80
  271.                 ClrEol
  272.                 PrintLn "   @X0E┌──@X0BPlease enter a one line description of your suggestion @X0A(@X0C74 chars max@X0A)@X0E─┐"
  273.                 InputStr "   _", STRING006, 3, 74, Mask_Ascii(), 0
  274.                 If (Len(STRING006) == 0) Then
  275.                     INTEGER007 = 15
  276.                     Goto LABEL009
  277.                 Endif
  278.                 If (Upper(STRING006) == "Q") Then
  279.                     INTEGER007 = 15
  280.                     Goto LABEL009
  281.                 Endif
  282.                 STRING014 = Random(999999)
  283.                 STRING014 = STRING014 + "000000"
  284.                 STRING014 = Left(STRING014, 6)
  285.                 STRING006 = Strip(STRING006, ";")
  286.                 STRING006 = "00001" + STRING008 + "00000" + STRING008 + STRING014 + STRING008 + "N" + STRING008 + STRING006
  287.                 INTEGER006 = INTEGER006 + 1
  288.                 INTEGER005 = INTEGER006
  289.                 FOpen 2, PPEPath() + PPEName() + ".Cfg", 2, 0
  290.                 FPutLn 2, INTEGER005
  291.                 FClose 2
  292.                 FOpen 5, PPEPath() + PPEName() + ".DAT", 0, 0
  293.                 For INTEGER003 = 1 To INTEGER005
  294.                     FGet 5, TSTRING034(INTEGER003)
  295.                 Next
  296.                 FClose 5
  297.                 FCloseAll
  298.                 FCreate 5, PPEPath() + PPEName() + ".DAT", 2, 0
  299.                 For INTEGER003 = 1 To INTEGER005 - 1
  300.                     FPutLn 5, TSTRING034(INTEGER003)
  301.                 Next
  302.                 FPutLn 5, STRING006
  303.                 FClose 5
  304.                 FAppend 4, PPEPath() + PPEName() + ".nam", 2, 0
  305.                 FPutLn 4, STRING014 + ";" + Strip(U_Name(), " ")
  306.                 FClose 4
  307.                 INTEGER007 = 15
  308.                 BOOLEAN002 = 0
  309.                 FCloseAll
  310.                 Goto LABEL008
  311.                 :LABEL011
  312.                 Backup 80
  313.                 ClrEol
  314.                 InputStr "@X0BPlease enter the suggestion number to vote on @X0A(@X0CQ@X0A)@X0Cuit _", STRING004, 15, 3, "0123456789", 0
  315.                 If (STRING004 == "") Then
  316.                     INTEGER007 = 15
  317.                     Goto LABEL009
  318.                 Endif
  319.                 If (Upper(STRING004) == "Q") Goto LABEL009
  320.                 If ((STRING004 == 0) || (STRING004 > INTEGER006)) Goto LABEL009
  321.                 STRING020 = ReadLine(PPEPath() + PPEName() + ".DAT", STRING004)
  322.                 STRING020 = Mid(STRING020, 13, 6)
  323.                 FOpen 2, PPEPath() + PPEName() + ".Nam", 0, 0
  324.                 :LABEL012
  325.                 If (Ferr(2)) Goto LABEL013
  326.                 FGet 2, STRING011
  327.                 Tokenize STRING011
  328.                 GetToken STRING010
  329.                 GetToken STRING009
  330.                 If ((STRING009 == Strip(U_Name(), " ")) && (STRING010 == STRING020)) Then
  331.                     Backup 80
  332.                     ClrEol
  333.                     PrintLn "           @X04████  @X0ASorry but you already voted on that suggestion! @X04████@X0F"
  334.                     FClose 2
  335.                     Delay (4 * 182) / 10
  336.                     INTEGER007 = 15
  337.                     Goto LABEL009
  338.                 Endif
  339.                 Goto LABEL012
  340.                 :LABEL013
  341.                 FClose 2
  342.                 Backup 80
  343.                 ClrEol
  344.                 Print "@X0BWould you like to vote @X0A(@X0EF@X0A)@X0Bor or @X0A(@X0EA@X0A)@X0Bgainst #@X0C ", STRING004, "@X0F "
  345.                 InputStr "_", STRING023, 14, 1, "FA", 0 + 8
  346.                 If (STRING023 == "A") Goto LABEL014
  347.                 Backup 80
  348.                 ClrEol
  349.                 PrintLn "      @X04████ @X0BYour vote has been noted for # @X0E", STRING004, "@X0B thank you for voting! @X04████@X0F"
  350.                 FAppend 3, PPEPath() + PPEName() + ".nam", 2, 0
  351.                 FPutLn 3, STRING020 + ";" + Strip(U_Name(), " ")
  352.                 FClose 3
  353.                 FOpen 4, PPEPath() + PPEName() + ".DAT", 0, 0
  354.                 For INTEGER002 = INTEGER004 To INTEGER005
  355.                     FGet 4, TSTRING005(INTEGER002)
  356.                 Next
  357.                 FClose 4
  358.                 STRING045 = Left(TSTRING005(STRING004), 5)
  359.                 STRING044 = Mid(TSTRING005(STRING004), 7, 5)
  360.                 STRING015 = Mid(TSTRING005(STRING004), 13, 6)
  361.                 STRING039 = Mid(TSTRING005(STRING004), 20, 1)
  362.                 STRING016 = Mid(TSTRING005(STRING004), 22, 74)
  363.                 STRING045 = STRING045 + 1
  364.                 STRING045 = "0000" + STRING045
  365.                 STRING045 = Right(STRING045, 5)
  366.                 TSTRING005(STRING004) = STRING045 + STRING008 + STRING044 + STRING008 + STRING015 + STRING008 + STRING039 + STRING008 + STRING016
  367.                 FOpen 5, PPEPath() + PPEName() + ".DAT", 2, 0
  368.                 For INTEGER002 = INTEGER004 To INTEGER005
  369.                     FPutLn 5, TSTRING005(INTEGER002)
  370.                 Next
  371.                 FClose 5
  372.                 INTEGER007 = 15
  373.                 Delay (2 * 182) / 10
  374.                 BOOLEAN002 = 0
  375.                 FCloseAll
  376.                 Goto LABEL008
  377.                 :LABEL014
  378.                 Backup 80
  379.                 ClrEol
  380.                 PrintLn "      @X04████ @X0BYour vote has been noted against # @X0E", STRING004, "@X0B thank you for voting! @X04████@X0F"
  381.                 FAppend 3, PPEPath() + PPEName() + ".NAM", 2, 0
  382.                 FPutLn 3, STRING020 + ";" + Strip(U_Name(), " ")
  383.                 FClose 3
  384.                 FOpen 2, PPEPath() + PPEName() + ".DAT", 0, 0
  385.                 For INTEGER002 = INTEGER004 To INTEGER005
  386.                     FGet 2, TSTRING005(INTEGER002)
  387.                 Next
  388.                 FClose 2
  389.                 STRING024 = Left(TSTRING005(STRING004), 5)
  390.                 STRING025 = Mid(TSTRING005(STRING004), 7, 5)
  391.                 STRING015 = Mid(TSTRING005(STRING004), 13, 6)
  392.                 STRING039 = Mid(TSTRING005(STRING004), 20, 1)
  393.                 STRING016 = Mid(TSTRING005(STRING004), 22, 74)
  394.                 STRING024 = STRING024
  395.                 STRING025 = STRING025 + 1
  396.                 STRING025 = "0000" + STRING025
  397.                 STRING025 = Right(STRING025, 5)
  398.                 TSTRING005(STRING004) = STRING024 + STRING008 + STRING025 + STRING008 + STRING015 + STRING008 + STRING039 + STRING008 + STRING016
  399.                 FOpen 2, PPEPath() + PPEName() + ".DAT", 2, 0
  400.                 For INTEGER002 = INTEGER004 To INTEGER005
  401.                     FPutLn 2, TSTRING005(INTEGER002)
  402.                 Next
  403.                 FClose 2
  404.                 INTEGER007 = 15
  405.                 Delay (2 * 182) / 10
  406.                 BOOLEAN002 = 0
  407.                 FCloseAll
  408.                 Goto LABEL008
  409.                 :LABEL015
  410.                 PrintLn "@X03─────────────────────────────────────────────────────────────────────────────@X0F"
  411.                 If (CurSec() >= SysopSec()) PrintLn "@X03 Sysop only commands - @X0A(@X0ED@X0A)@X03elete a Suggestion / @X0A(@X0EE@X0A)@X03dit the notes file"
  412.                 InputStr "@X0B@X0A(@X0EV@X0A)@X0Bote / @X0A(@X0EA@X0A)@X0Bdd your own / @X0A(@X0EH@X0A)@X0Belp / @X0A(@X0EM@X0A)@X0Bore / @X0A(@X0ET@X0A)@X0Boggle / @X0A(@X0EN@X0A)@X0Botes @X8D@X0B / @X0A(@X0CQ@X0A)@X0Cuit _", STRING003, 15, 1, "TVAMHQNBDE", 0 + 8
  413.                 INTEGER007 = INTEGER007 + 15
  414.                 If ((STRING003 == "T") && (BOOLEAN001 == 0)) Then
  415.                     BOOLEAN001 = 1
  416.                     INTEGER007 = 15
  417.                     Goto LABEL009
  418.                 ElseIf ((STRING003 == "T") && (BOOLEAN001 == 1)) Then
  419.                     BOOLEAN001 = 0
  420.                     INTEGER007 = 15
  421.                     Goto LABEL009
  422.                 Endif
  423.                 If (STRING003 == "M") Return
  424.                 If (STRING003 == "V") Goto LABEL011
  425.                 If (STRING003 == "A") Goto LABEL010
  426.                 If (STRING003 == "H") Goto LABEL018
  427.                 If ((STRING003 == "D") && (CurSec() >= SysopSec())) Goto LABEL019
  428.                 If ((STRING003 == "E") && (CurSec() >= SysopSec())) Goto LABEL028
  429.                 If (STRING003 == "B") Goto LABEL026
  430.                 If (STRING003 == "N") Goto LABEL027
  431.             Case "Q"
  432.                 Gosub LABEL017
  433.                 Cls
  434.             Case Else
  435.                 Return
  436.                 :LABEL016
  437.                 Cls
  438.                 STRING001 = "@BOARDNAME@" + " Suggestion Box"
  439.                 STRING001 = Trim(STRING001, " ")
  440.                 STRING001 = Space((80 - Len(STRING001)) / 2 - 5) + STRING001
  441.                 PrintLn "@X10┌─────────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  442.                 PrintLn "@X10│@X1E", STRING001, "@POS:79@@X19│@X0F"
  443.                 PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────┘@X0F"
  444.                 Return
  445.                 :LABEL017
  446.                 Backup 80
  447.                 ClrEol
  448.                 PrintLn "                 @X84████  @X0AOne moment please, sorting data.... @X84 ████ @X0F"
  449.                 FOpen 5, PPEPath() + PPEName() + ".DAT", 0, 0
  450.                 For INTEGER001 = 0 To INTEGER005
  451.                     FGet 5, TSTRING012(INTEGER001)
  452.                 Next
  453.                 FClose 5
  454.                 Sort TSTRING012, TINTEGER008
  455.                 FCreate 7, PPEPath() + PPEName() + ".SRT", 2, 0
  456.                 For INTEGER001 = 0 To INTEGER005
  457.                     FPutLn 7, TSTRING012(TINTEGER008(INTEGER001))
  458.                 Next
  459.                 FClose 7
  460.                 FCloseAll
  461.                 FCreate 4, PPEPath() + PPEName() + ".DAT", 2, 0
  462.                 While (INTEGER005 <> 0) Do
  463.                     STRING031 = ReadLine(PPEPath() + PPEName() + ".SRT", INTEGER005)
  464.                     FPutLn 4, STRING031
  465.                     Dec INTEGER005
  466.                 EndWhile
  467.                 FClose 4
  468.                 Return
  469.                 :LABEL018
  470.                 INTEGER007 = 15
  471.                 Cls
  472.                 DispFile PPEPath() + PPEName() + "1" + ".hlp", 2 + 1 + 4
  473.                 Newlines 1
  474.                 Print "                      @X0APress your @X0E<@X84ENTER@X0E>@X0A key to continue@X0F"
  475.                 InputStr "_", STRING017, 15, 1, Mask_Ascii(), 0
  476.                 Cls
  477.                 DispFile PPEPath() + PPEName() + "2" + ".hlp", 2 + 1 + 4
  478.                 Newlines 1
  479.                 Print "                      @X0APress your @X0E<@X84ENTER@X0E>@X0A key to continue@X0F"
  480.                 InputStr "_", STRING017, 15, 1, Mask_Ascii(), 0
  481.                 Goto LABEL009
  482.                 :LABEL019
  483.                 FCloseAll
  484.                 Backup 80
  485.                 ClrEol
  486.                 Print "   @X0A  Suggestion Number to @X8ADelete@X0A # @X0E(@X0C1@X0E-@X0C", INTEGER005, "@X0E) @X0A/ @X0E(@X0CQ@X0E)@X0Cuit@X0F "
  487.                 InputStr "_", STRING018, 14, 3, "0123456789Q", 0 + 8
  488.                 If (STRING018 == "Q") Then
  489.                     INTEGER007 = 15
  490.                     BOOLEAN002 = 0
  491.                     Goto LABEL008
  492.                 Endif
  493.                 STRING029 = ReadLine(PPEPath() + PPEName() + ".dat", STRING018)
  494.                 STRING029 = Mid(STRING029, 13, 6)
  495.                 FOpen 3, PPEPath() + PPEName() + ".$$$", 2, 0
  496.                 FOpen 4, PPEPath() + PPEName() + ".Nam", 0, 0
  497.                 :LABEL020
  498.                 If (Ferr(4)) Goto LABEL022
  499.                 FGet 4, STRING030
  500.                 If (Mid(STRING030, 13, 6) == STRING029) Goto LABEL021
  501.                 If (Mid(STRING030, 13, 6) <> STRING029) FPutLn 3, STRING030
  502.                 :LABEL021
  503.                 Goto LABEL020
  504.                 :LABEL022
  505.                 FClose 4
  506.                 FClose 3
  507.                 Rename PPEPath() + PPEName() + ".Nam", PPEPath() + PPEName() + ".Man"
  508.                 Rename PPEPath() + PPEName() + ".$$$", PPEPath() + PPEName() + ".Nam"
  509.                 FOpen 5, PPEPath() + PPEName() + ".%%%", 2, 0
  510.                 FOpen 6, PPEPath() + PPEName() + ".DAT", 0, 0
  511.                 :LABEL023
  512.                 If (Ferr(6)) Goto LABEL025
  513.                 FGet 6, STRING030
  514.                 If (Mid(STRING030, 13, 6) == STRING029) Goto LABEL024
  515.                 FPutLn 5, STRING030
  516.                 :LABEL024
  517.                 Goto LABEL023
  518.                 :LABEL025
  519.                 FClose 6
  520.                 FClose 5
  521.                 FCloseAll
  522.                 Copy PPEPath() + PPEName() + ".Dat", PPEPath() + PPEName() + ".Tad"
  523.                 Delete PPEPath() + PPEName() + ".Dat"
  524.                 Copy PPEPath() + PPEName() + ".%%%", PPEPath() + PPEName() + ".Dat"
  525.                 Delete PPEPath() + PPEName() + ".%%%"
  526.                 INTEGER006 = INTEGER006 - 1
  527.                 FOpen 2, PPEPath() + PPEName() + ".Cfg", 2, 0
  528.                 FPutLn 2, INTEGER006
  529.                 FClose 2
  530.                 If (Exist(PPEPath() + String(STRING029) + ".Not")) Delete PPEPath() + String(STRING029) + ".Not"
  531.                 BOOLEAN002 = 0
  532.                 INTEGER007 = 15
  533.                 Goto LABEL008
  534.                 :LABEL026
  535.                 Cls
  536.                 Newlines 4
  537.                 PrintLn "@POS:23@@X10┌─────────────────────────────────@X19┐@X0F"
  538.                 PrintLn "@POS:23@@X10│       @X1AUser Suggestion Box       @X19│@X0F"
  539.                 PrintLn "@POS:23@@X10│       @X1E▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀       @X19│@X0F"
  540.                 PrintLn "@POS:23@@X10│                                 @X19│@X0F"
  541.                 PrintLn "@POS:23@@X10│       @X1C(c)94 GO/4 Software       @X19│@X0F"
  542.                 PrintLn "@POS:23@@X10│                                 @X19│@X0F"
  543.                 PrintLn "@POS:23@@X10│      @X13GO/4 Software is:          @X19│@X0F"
  544.                 PrintLn "@POS:23@@X10│           @X1FBill Marcy            @X19│@X0F"
  545.                 PrintLn "@POS:23@@X10│           @X1FEric Scales           @X19│@X0F"
  546.                 Print "@POS:23@@X10└@X19─────────────────────────────────┘@X0F"
  547.                 Delay (5 * 182) / 10
  548.                 Goto LABEL009
  549.                 :LABEL027
  550.                 Backup 80
  551.                 ClrEol
  552.                 Print " @X0BView which note file@X0A  @X0E(@X0CQ@X0E)@X0Cuit@X0F "
  553.                 InputStr "_", STRING035, 14, 3, "0123456789Q", 0 + 8
  554.                 If (STRING035 == "Q") Then
  555.                     INTEGER007 = 15
  556.                     BOOLEAN002 = 0
  557.                     Goto LABEL008
  558.                 Endif
  559.                 STRING041 = ReadLine(PPEPath() + PPEName() + ".DAT", STRING035)
  560.                 STRING020 = Mid(STRING041, 13, 6)
  561.                 STRING036 = Mid(STRING041, 20, 1)
  562.                 If (STRING036 == "Y") Then
  563.                     Cls
  564.                     DispFile PPEPath() + String(STRING020) + ".Not", 0
  565.                     Newlines 1
  566.                     Print "                      @X0APress your @X0E<@X84ENTER@X0E>@X0A key to continue@X0F"
  567.                     InputStr "_", STRING017, 15, 1, Mask_Ascii(), 0
  568.                     BOOLEAN002 = 0
  569.                     INTEGER007 = 15
  570.                     Goto LABEL008
  571.                 Else
  572.                     Backup 80
  573.                     ClrEol
  574.                     PrintLn "@X0A @X0E████ @X0BSorry but you chose a Suggestion with no note @X0A(@X0Blook for the @X8D@X0A) @X0E████@X0F"
  575.                     Delay (4 * 182) / 10
  576.                     BOOLEAN002 = 0
  577.                 Endif
  578.                 INTEGER007 = 15
  579.                 Goto LABEL008
  580.                 :LABEL028
  581.                 Backup 80
  582.                 ClrEol
  583.                 Print " @X0AAdd a note to which Suggestion@X0A # @X0E(@X0C1@X0E-@X0C", INTEGER005, "@X0E) @X0A/ @X0E(@X0CQ@X0E)@X0Cuit@X0F "
  584.                 InputStr "_", STRING035, 14, 3, "0123456789Q", 0 + 8
  585.                 If (STRING035 == "Q") Then
  586.                     INTEGER007 = 15
  587.                     BOOLEAN002 = 0
  588.                     Goto LABEL008
  589.                 Endif
  590.                 Newline
  591.                 STRING041 = ReadLine(PPEPath() + PPEName() + ".DAT", STRING035)
  592.                 STRING020 = Mid(STRING041, 13, 6)
  593.                 STRING036 = Mid(STRING041, 20, 1)
  594.                 STRING033 = Mid(STRING041, 22, 74)
  595.                 If (STRING036 == "Y") Then
  596.                     Backup 80
  597.                     ClrEol
  598.                     InputStr "@X0BThere is already a note for this Suggestion @X0A(@X0ED@X0A)@X0Belete or @X0A(@X0ER@X0A)@X0Beview it _", STRING037, 14, 1, "DR", 0 + 8
  599.                     For INTEGER002 = 1 To INTEGER005
  600.                         TSTRING005(INTEGER002) = ""
  601.                     Next
  602.                     Select Case (Upper(STRING037))
  603.                         Case "D"
  604.                             Delete PPEPath() + String(STRING020) + ".Not"
  605.                             FOpen 7, PPEPath() + PPEName() + ".DAT", 0, 0
  606.                             For INTEGER002 = 1 To INTEGER005
  607.                                 FGet 7, TSTRING005(INTEGER002)
  608.                             Next
  609.                             FClose 7
  610.                             FCloseAll
  611.                             STRING052 = Left(TSTRING005(STRING035), 5)
  612.                             STRING053 = Mid(TSTRING005(STRING035), 7, 5)
  613.                             STRING054 = Mid(TSTRING005(STRING035), 13, 6)
  614.                             STRING055 = "N"
  615.                             STRING056 = Mid(TSTRING005(STRING035), 22, 74)
  616.                             TSTRING005(STRING035) = STRING052 + STRING008 + STRING053 + STRING008 + STRING054 + STRING008 + STRING055 + STRING008 + STRING056
  617.                             FOpen 6, PPEPath() + PPEName() + ".DAT", 2, 0
  618.                             For INTEGER002 = 1 To INTEGER005
  619.                                 FPutLn 6, TSTRING005(INTEGER002)
  620.                             Next
  621.                             FClose 6
  622.                         Case "R"
  623.                             Cls
  624.                             DispFile PPEPath() + String(STRING020) + ".Not", 0
  625.                             Newlines 1
  626.                             Print "                      @X0APress your @X0E<@X84ENTER@X0E>@X0A key to continue@X0F"
  627.                             InputStr "_", STRING017, 15, 1, Mask_Ascii(), 0
  628.                     End Select
  629.                     BOOLEAN002 = 0
  630.                     Goto LABEL008
  631.                 Else
  632.                     INTEGER009 = 2
  633.                     Cls
  634.                     PrintLn "@X0AType an @X0CS@X0A on a blank line to @X0CSave@X0A, or a @X0CQ@X0A to @X0Cquit@X0A (no save)"
  635.                     Newline
  636.                     PrintLn "@X0E┌─────────@X0B1@X0E─────────@X0B2@X0E─────────@X0B3@X0E─────────@X0B4@X0E─────────@X0B5@X0E─────────@X0B6@X0E─────────@X0B7@X0E───────┐"
  637.                     TSTRING032(0) = "Date: " + String(Date())
  638.                     TSTRING032(1) = "  RE: " + Left(STRING033, 70)
  639.                     TSTRING032(2) = "-------------------------------------------------------------------------------"
  640.                     For INTEGER003 = 3 To 21
  641.                         InputStr "_", TSTRING032(INTEGER003), 11, 78, Mask_Ascii(), 0 + 256
  642.                         If (Upper(TSTRING032(INTEGER003)) == "S") Break
  643.                         If (Upper(TSTRING032(INTEGER003)) == "Q") Then
  644.                             BOOLEAN002 = 0
  645.                             Goto LABEL008
  646.                         Endif
  647.                         Inc INTEGER009
  648.                     Next
  649.                     INTEGER009 = INTEGER009
  650.                     FOpen 3, PPEPath() + String(STRING020) + ".Not", 2, 0
  651.                     For INTEGER010 = 0 To INTEGER009
  652.                         FPutLn 3, TSTRING032(INTEGER010)
  653.                     Next
  654.                     FClose 3
  655.                 Endif
  656.                 FOpen 2, PPEPath() + PPEName() + ".DAT", 0, 0
  657.                 For INTEGER002 = 1 To INTEGER005
  658.                     FGet 2, TSTRING005(INTEGER002)
  659.                 Next
  660.                 FClose 2
  661.                 FCloseAll
  662.                 STRING041 = ReadLine(PPEPath() + PPEName() + ".DAT", STRING035)
  663.                 STRING026 = Left(STRING041, 5)
  664.                 STRING027 = Mid(STRING041, 7, 5)
  665.                 STRING028 = Mid(STRING041, 13, 6)
  666.                 STRING042 = "Y"
  667.                 STRING043 = Mid(STRING041, 22, 74)
  668.                 TSTRING005(STRING035) = STRING026 + STRING008 + STRING027 + STRING008 + STRING028 + STRING008 + STRING042 + STRING008 + STRING043
  669.                 FOpen 6, PPEPath() + PPEName() + ".DAT", 2, 0
  670.                 For INTEGER011 = 1 To INTEGER005
  671.                     FPutLn 6, TSTRING005(INTEGER011)
  672.                 Next
  673.                 FClose 6
  674.                 BOOLEAN002 = 0
  675.                 INTEGER007 = 15
  676.                 Goto LABEL008
  677.             Endif
  678.     End Select
  679.     If (Exist(PPEPath() + "Waiting.lst")) Then
  680.         FOpen 1, PPEPath() + "Waiting.Lst", 0, 0
  681.         :LABEL029
  682.         If (Ferr(1)) Goto LABEL030
  683.         FGet 1, INTEGER012
  684.         Broadcast INTEGER012, INTEGER012, "Suggestion door now open!"
  685.         Goto LABEL029
  686.         :LABEL030
  687.         FClose 1
  688.         Delete PPEPath() + "waiting.lst"
  689.     Endif
  690.     Delete PPEPath() + "door.lck"
  691.     End
  692.  
  693. ;------------------------------------------------------------------------------
  694. ;
  695. ; Usage report (before postprocessing)
  696. ;
  697. ; ■ Statements used :
  698. ;
  699. ;    2       End
  700. ;    12      Cls
  701. ;    13      ClrEol
  702. ;    140     Goto 
  703. ;    166     Let 
  704. ;    9       Print 
  705. ;    41      PrintLn 
  706. ;    91      If 
  707. ;    4       DispFile 
  708. ;    5       FCreate 
  709. ;    23      FOpen 
  710. ;    4       FAppend 
  711. ;    33      FClose 
  712. ;    15      FGet 
  713. ;    19      FPutLn 
  714. ;    2       GetUser
  715. ;    6       Delete 
  716. ;    14      InputStr 
  717. ;    6       Gosub 
  718. ;    4       Return
  719. ;    10      Delay 
  720. ;    1       Inc 
  721. ;    1       Dec 
  722. ;    3       Newline
  723. ;    9       Newlines 
  724. ;    1       Tokenize 
  725. ;    3       GetToken 
  726. ;    1       Broadcast 
  727. ;    1       RdUNet 
  728. ;    1       WrUNet 
  729. ;    13      Backup 
  730. ;    2       Rename 
  731. ;    4       Redim 
  732. ;    2       Copy 
  733. ;    1       Sort 
  734. ;    10      FCloseAll
  735. ;
  736. ;
  737. ; ■ Functions used :
  738. ;
  739. ;    10      *
  740. ;    11      /
  741. ;    211     +
  742. ;    7       -
  743. ;    55      ==
  744. ;    2       <>
  745. ;    23      <
  746. ;    17      <=
  747. ;    3       >
  748. ;    46      >=
  749. ;    56      !
  750. ;    51      &&
  751. ;    18      ||
  752. ;    4       Len(
  753. ;    8       Upper()
  754. ;    33      Mid()
  755. ;    11      Left()
  756. ;    2       Right()
  757. ;    1       Space()
  758. ;    5       Ferr()
  759. ;    2       Asc()
  760. ;    2       LTrim()
  761. ;    1       Trim()
  762. ;    1       Random()
  763. ;    1       Date()
  764. ;    4       U_Name()
  765. ;    5       Strip()
  766. ;    7       String()
  767. ;    6       Mask_Ascii()
  768. ;    63      PPEPath()
  769. ;    3       PcbNode()
  770. ;    7       ReadLine()
  771. ;    6       SysopSec()
  772. ;    1       UN_Stat()
  773. ;    1       UN_Name()
  774. ;    7       CurSec()
  775. ;    6       Exist()
  776. ;    51      PPEName()
  777. ;
  778. ;------------------------------------------------------------------------------
  779. ;
  780. ; Analysis flags : s
  781. ;
  782. ; s - Sysop level access ■ 5
  783. ;     Program is reading the sysop access level, this may be normal
  784. ;     but still it is very suspect. It is the best way to give a user
  785. ;     all priviledges. Check!
  786. ;     ■ Search for : SYSOPSEC()
  787. ;
  788. ;------------------------------------------------------------------------------
  789. ;
  790. ; Postprocessing report
  791. ;
  792. ;    17      For/Next
  793. ;    1       While/EndWhile
  794. ;    24      If/Then or If/Then/Else
  795. ;    2       Select Case
  796. ;
  797. ;------------------------------------------------------------------------------
  798. ;                 AEGiS Corp - Break the routines, code against the machines!
  799. ;------------------------------------------------------------------------------
  800.