home *** CD-ROM | disk | FTP | other *** search
/ Groovy Bytes: Behind the Moon / groovybytes.iso / GROOVY / PPE / AEGIS / SP_AGS.ZIP / SCENIAL.PPE (.txt) < prev    next >
Encoding:
PCBoard Programming Language Executable  |  1995-03-20  |  14.0 KB  |  925 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.     Boolean  BOOLEAN004
  23.     Boolean  BOOLEAN005
  24.     Integer  INTEGER007
  25.     Integer  INTEGER008
  26.     Integer  INTEGER009
  27.     Integer  INTEGER010
  28.     Integer  INTEGER011
  29.     Integer  INTEGER012
  30.     Integer  INTEGER013
  31.     Integer  INTEGER015
  32.     Integer  INTEGER016
  33.     Integer  INTEGER017
  34.     Integer  INTEGER024
  35.     Integer  INTEGER025
  36.     Integer  INTEGER026
  37.     Integer  INTEGER027
  38.     Integer  INTEGER028
  39.     Integer  INTEGER029
  40.     Integer  INTEGER030
  41.     Integer  INTEGER031
  42.     Integer  INTEGER032
  43.     Integer  INTEGER033
  44.     Integer  INTEGER034
  45.     Integer  INTEGER035
  46.     Integer  INTEGER036
  47.     Integer  INTEGER037
  48.     Integer  INTEGER038
  49.     Integer  INTEGER039
  50.     Integer  INTEGER040
  51.     Integer  INTEGER041
  52.     Integer  INTEGER042
  53.     Integer  INTEGER043
  54.     Integer  INTEGER044
  55.     Integer  INTEGER045
  56.     String   TSTRING001(20)
  57.     String   TSTRING002(20)
  58.     String   STRING003
  59.     String   STRING004
  60.     String   STRING005
  61.     String   TSTRING006(73)
  62.     String   STRING007
  63.     String   STRING008
  64.     String   STRING009
  65.     String   STRING010
  66.     String   STRING011
  67.     String   STRING012
  68.     String   TSTRING013(14)
  69.     String   STRING014
  70.     String   STRING015
  71.     String   STRING016
  72.     String   STRING017
  73.     String   STRING018
  74.     String   STRING019
  75.     String   STRING020
  76.     Declare  Function FUNCTION001(Integer INTEGER001, Integer INTEGER002, Integer INTEGER003, Integer INTEGER004, Integer INTEGER005, Integer INTEGER006) Integer
  77.     Declare  Function FUNCTION002(Integer INTEGER014) Integer
  78.     Declare  Function FUNCTION003() Boolean
  79.     Declare  Function FUNCTION004() Boolean
  80.     Declare  Procedure PROC001()
  81.     Declare  Procedure PROC002(Integer INTEGER018, Integer INTEGER019, Integer INTEGER020, Integer INTEGER021, Integer INTEGER022, Integer INTEGER023)
  82.     Declare  Procedure PROC003()
  83.     Declare  Procedure PROC004()
  84.     Declare  Procedure PROC005()
  85.     Declare  Procedure PROC006()
  86.     Declare  Procedure PROC007()
  87.     Declare  Procedure PROC008()
  88.     Declare  Procedure PROC009()
  89.     Declare  Procedure PROC010()
  90.     Declare  Procedure PROC011()
  91.     Declare  Procedure PROC012()
  92.     Declare  Procedure PROC013()
  93.     Declare  Procedure PROC014()
  94.  
  95. ;------------------------------------------------------------------------------
  96.  
  97.     Goto LABEL022
  98.     End
  99.  
  100. ;------------------------------------------------------------------------------
  101.  
  102.     Procedure PROC001()
  103.  
  104.     AnsiPos 79, 23
  105.     Print Chr(27) + "[0;30;40m "
  106.     AnsiPos 79, 23
  107.  
  108.     EndProc
  109.  
  110.  
  111. ;------------------------------------------------------------------------------
  112.  
  113.     Function FUNCTION001(Integer INTEGER001, Integer INTEGER002, Integer INTEGER003, Integer INTEGER004, Integer INTEGER005, Integer INTEGER006) Integer
  114.  
  115.     Integer  INTEGER008
  116.     Integer  INTEGER009
  117.     Integer  INTEGER010
  118.     Integer  INTEGER011
  119.     String   STRING003
  120.     Integer  INTEGER012
  121.     Integer  INTEGER013
  122.     Integer  INTEGER014
  123.  
  124.     INTEGER009 = INTEGER002
  125.     INTEGER010 = INTEGER002
  126.     INTEGER011 = FUNCTION002(INTEGER001)
  127.     INTEGER011 = INTEGER011 + INTEGER011 % 2
  128.     INTEGER012 = INTEGER003 - INTEGER011 / 2
  129.     If (INTEGER012 < 1) Then
  130.         INTEGER012 = 1
  131.     Endif
  132.     If (INTEGER004 + INTEGER001 > 23) Then
  133.         INTEGER013 = 23 - INTEGER001
  134.     Else
  135.         INTEGER013 = INTEGER004
  136.     Endif
  137.     Gosub LABEL002
  138.     STRING003 = ""
  139.     :LABEL001
  140.     STRING003 = Inkey()
  141.     Select Case (STRING003)
  142.         Case "DOWN"
  143.             If (INTEGER009 < INTEGER001) Then
  144.                 Inc INTEGER009
  145.             Else
  146.                 INTEGER009 = 0
  147.             Endif
  148.             Gosub LABEL003
  149.             INTEGER010 = INTEGER009
  150.         Case "UP"
  151.             If (INTEGER009 > 0) Then
  152.                 Dec INTEGER009
  153.             Else
  154.                 INTEGER009 = INTEGER001
  155.             Endif
  156.             Gosub LABEL003
  157.             INTEGER010 = INTEGER009
  158.         Case Chr(13)
  159.             Goto LABEL004
  160.     End Select
  161.     Goto LABEL001
  162.     Goto LABEL004
  163.     :LABEL002
  164.     For INTEGER008 = 0 To INTEGER001
  165.         If (INTEGER008 == INTEGER009) Then
  166.             Color INTEGER006
  167.         Else
  168.             Color INTEGER005
  169.         Endif
  170.         AnsiPos INTEGER012, INTEGER013 + INTEGER008
  171.         Print TSTRING001(INTEGER008)
  172.         PROC001()
  173.     Next
  174.     Return
  175.     :LABEL003
  176.     Color INTEGER005
  177.     AnsiPos INTEGER012, INTEGER013 + INTEGER010
  178.     Print TSTRING001(INTEGER010)
  179.     Color INTEGER006
  180.     AnsiPos INTEGER012, INTEGER013 + INTEGER009
  181.     Print TSTRING001(INTEGER009)
  182.     PROC001()
  183.     Return
  184.     :LABEL004
  185.     Color INTEGER005
  186.     FUNCTION001 = INTEGER009
  187.  
  188.     EndFunc
  189.  
  190.  
  191. ;------------------------------------------------------------------------------
  192.  
  193.     Function FUNCTION002(Integer INTEGER014) Integer
  194.  
  195.     Integer  INTEGER016
  196.     Integer  INTEGER017
  197.     Integer  INTEGER018
  198.  
  199.     FUNCTION002 = 0
  200.     For INTEGER016 = 0 To INTEGER014
  201.         INTEGER017 = Len(TSTRING001(INTEGER016))
  202.         If (INTEGER017 > FUNCTION002) Then
  203.             FUNCTION002 = INTEGER017
  204.         Endif
  205.     Next
  206.  
  207.     EndFunc
  208.  
  209.  
  210. ;------------------------------------------------------------------------------
  211.  
  212.     Procedure PROC002(Integer INTEGER018, Integer INTEGER019, Integer INTEGER020, Integer INTEGER021, Integer INTEGER022, Integer INTEGER023)
  213.  
  214.     String   STRING004
  215.     Integer  INTEGER024
  216.     Integer  INTEGER025
  217.     Integer  INTEGER026
  218.     String   STRING005
  219.     Integer  INTEGER027
  220.     Integer  INTEGER028
  221.     Integer  INTEGER029
  222.  
  223.     INTEGER025 = 0
  224.     INTEGER026 = 0
  225.     INTEGER019 = INTEGER019 - INTEGER019 % 2
  226.     INTEGER027 = INTEGER020 - INTEGER019 / 2 + 2
  227.     If (INTEGER027 < 1) Then
  228.         INTEGER027 = 1
  229.     Endif
  230.     If (INTEGER021 + INTEGER018 > 23) Then
  231.         INTEGER028 = 23 - INTEGER018
  232.     Else
  233.         INTEGER028 = INTEGER021
  234.     Endif
  235.     Gosub LABEL007
  236.     Gosub LABEL008
  237.     Gosub LABEL009
  238.     STRING005 = ""
  239.     INTEGER029 = Len(TSTRING002(INTEGER025))
  240.     :LABEL005
  241.     STRING005 = Upper(Inkey())
  242.     Select Case (STRING005)
  243.         Case Chr(8)
  244.             If (INTEGER029 <> 0) Then
  245.                 Dec INTEGER029
  246.                 TSTRING002(INTEGER025) = Left(TSTRING002(INTEGER025), INTEGER029)
  247.                 Gosub LABEL012
  248.             Endif
  249.         Case "DOWN", Chr(9), Chr(13)
  250.             If (INTEGER025 < INTEGER018) Then
  251.                 Inc INTEGER025
  252.             Else
  253.                 INTEGER025 = 0
  254.             Endif
  255.             Gosub LABEL010
  256.             INTEGER026 = INTEGER025
  257.             INTEGER029 = Len(TSTRING002(INTEGER025))
  258.         Case "UP", "SHIFT TAB"
  259.             If (INTEGER025 > 0) Then
  260.                 Dec INTEGER025
  261.             Else
  262.                 INTEGER025 = INTEGER018
  263.             Endif
  264.             Gosub LABEL010
  265.             INTEGER026 = INTEGER025
  266.             INTEGER029 = Len(TSTRING002(INTEGER025))
  267.             If ((((((((STRING005 == "LEFT") || (STRING005 == "RIGHT")) || (STRING005 == "INS")) || (STRING005 == "DEL")) || (STRING005 == "HOME")) || (STRING005 == "END")) || (STRING005 == "PGUP")) || (STRING005 == "PGDN")) Then
  268.                 Goto LABEL006
  269.             Endif
  270.         Case Chr(27)
  271.             Goto LABEL013
  272.         Case INTEGER019, Chr(31), Chr(126)
  273.             Inc INTEGER029
  274.             TSTRING002(INTEGER025) = TSTRING002(INTEGER025) + STRING005
  275.             Gosub LABEL011
  276.     End Select
  277.     :LABEL006
  278.     Goto LABEL005
  279.     Goto LABEL013
  280.     :LABEL007
  281.     STRING004 = ""
  282.     For INTEGER024 = 1 To INTEGER019
  283.         STRING004 = STRING004 + "."
  284.     Next
  285.     Return
  286.     :LABEL008
  287.     For INTEGER024 = 0 To INTEGER018
  288.         If (INTEGER024 < 9) Then
  289.             AnsiPos INTEGER027 - 3, INTEGER028 + INTEGER024
  290.         Else
  291.             AnsiPos INTEGER027 - 4, INTEGER028 + INTEGER024
  292.         Endif
  293.         Print "@X0D", INTEGER024 + 1, "@X08 [", STRING004, "]"
  294.     Next
  295.     AnsiPos INTEGER020 - 12, INTEGER028 + INTEGER018 + 1
  296.     Print "@X07≡■≡ type ESC when done ≡■≡"
  297.     Return
  298.     :LABEL009
  299.     For INTEGER024 = 0 To INTEGER018
  300.         If (INTEGER024 == INTEGER025) Then
  301.             Color INTEGER023
  302.         Else
  303.             Color INTEGER022
  304.         Endif
  305.         AnsiPos INTEGER027, INTEGER028 + INTEGER024
  306.         Print TSTRING002(INTEGER024)
  307.         Print Right(STRING004, INTEGER019 - Len(TSTRING002(INTEGER024)))
  308.     Next
  309.     AnsiPos INTEGER027 + Len(TSTRING002(INTEGER025)), INTEGER028 + INTEGER025
  310.     Return
  311.     :LABEL010
  312.     Color INTEGER022
  313.     AnsiPos INTEGER027, INTEGER028 + INTEGER026
  314.     Print TSTRING002(INTEGER026)
  315.     Print Right(STRING004, INTEGER019 - Len(TSTRING002(INTEGER026)))
  316.     Color INTEGER023
  317.     AnsiPos INTEGER027, INTEGER028 + INTEGER025
  318.     Print TSTRING002(INTEGER025)
  319.     Print Right(STRING004, INTEGER019 - Len(TSTRING002(INTEGER025)))
  320.     AnsiPos INTEGER027 + Len(TSTRING002(INTEGER025)), INTEGER028 + INTEGER025
  321.     Return
  322.     :LABEL011
  323.     Color INTEGER023
  324.     AnsiPos INTEGER027 + Len(TSTRING002(INTEGER025)) - 1, INTEGER028 + INTEGER025
  325.     Print STRING005
  326.     Return
  327.     :LABEL012
  328.     Color INTEGER023
  329.     AnsiPos INTEGER027 + Len(TSTRING002(INTEGER025)), INTEGER028 + INTEGER025
  330.     Print "."
  331.     AnsiPos INTEGER027 + Len(TSTRING002(INTEGER025)), INTEGER028 + INTEGER025
  332.     Return
  333.     :LABEL013
  334.     Color INTEGER022
  335.  
  336.     EndProc
  337.  
  338.  
  339. ;------------------------------------------------------------------------------
  340.  
  341.     Procedure PROC003()
  342.  
  343.     INTEGER030 = Time() / 60
  344.  
  345.     EndProc
  346.  
  347.  
  348. ;------------------------------------------------------------------------------
  349.  
  350.     Procedure PROC004()
  351.  
  352.     INTEGER031 = Time() / 60
  353.     If (INTEGER031 >= INTEGER030) Then
  354.         INTEGER032 = INTEGER031 - INTEGER030
  355.     Else
  356.         INTEGER032 = INTEGER031 + 86399 - INTEGER030
  357.     Endif
  358.     AdjTime MinLeft() + INTEGER032
  359.  
  360.     EndProc
  361.  
  362.  
  363. ;------------------------------------------------------------------------------
  364.  
  365.     Function FUNCTION003() Boolean
  366.  
  367.     Boolean  BOOLEAN004
  368.  
  369.     If (Exist(STRING008) == 0) Then
  370.         FCreate 1, STRING008, 2, 0
  371.         FCreate 2, STRING009, 2, 0
  372.     Else
  373.         FOpen 1, STRING008, 2, 0
  374.         FOpen 2, STRING009, 2, 0
  375.     Endif
  376.     FDefIn 2
  377.     FDefOut 2
  378.     FUNCTION003 = 1
  379.  
  380.     EndFunc
  381.  
  382.  
  383. ;------------------------------------------------------------------------------
  384.  
  385.     Function FUNCTION004() Boolean
  386.  
  387.     String   STRING014
  388.     Boolean  BOOLEAN005
  389.     Integer  INTEGER035
  390.     Integer  INTEGER036
  391.  
  392.     TSTRING006(0) = Upper(U_Name())
  393.     INTEGER034 = 0
  394.     SearchInit TSTRING006(0), 0
  395.     :LABEL014
  396.     If (Ferr(1)) Goto LABEL015
  397.     FGet 1, STRING014
  398.     SearchFind STRING014, BOOLEAN005
  399.     If (BOOLEAN005) Then
  400.         BOOLEAN001 = 0
  401.         PrintLn 
  402.         Goto LABEL016
  403.     Else
  404.         Inc INTEGER034
  405.     Endif
  406.     Goto LABEL014
  407.     :LABEL015
  408.     BOOLEAN001 = 1
  409.     :LABEL016
  410.     SearchStop
  411.     If (BOOLEAN001 == 1) Then
  412.         For INTEGER035 = 1 To 72
  413.             TSTRING006(INTEGER035) = ""
  414.         Next
  415.     Else
  416.         FDefIn 2
  417.         FSeek 2, 1438 * INTEGER034, 1
  418.         FDRead STRING014, 25
  419.         If (Ferr(2) == 1) Then
  420.             Cls
  421.             PrintLn "@X84VOTE.DAT corrupted! Please report to sysop..."
  422.             PrintLn "@X0FAborting vote, returning to bbs..."
  423.             FUNCTION004 = 0
  424.             Goto LABEL017
  425.         Endif
  426.         If (STRING014 == TSTRING006(0)) Then
  427.             FDRead TSTRING006(1), 8
  428.             FDRead TSTRING006(2), 5
  429.             For INTEGER035 = 3 To 72
  430.                 FDRead TSTRING006(INTEGER035), 20
  431.             Next
  432.         Else
  433.             Cls
  434.             PrintLn "@X84VOTE.DAT corrupted! Please report to sysop..."
  435.             PrintLn "@X0FAborting vote, returning to bbs..."
  436.             FUNCTION004 = 0
  437.             Goto LABEL017
  438.         Endif
  439.     Endif
  440.     FUNCTION004 = 1
  441.     :LABEL017
  442.  
  443.     EndFunc
  444.  
  445.  
  446. ;------------------------------------------------------------------------------
  447.  
  448.     Procedure PROC011()
  449.  
  450.     Integer  INTEGER036
  451.  
  452.     If (BOOLEAN001 == 1) Then
  453.         FSeek 1, 0, 2
  454.         FPutLn 1, U_Name()
  455.         FSeek 2, 0, 2
  456.     Else
  457.         FSeek 2, 1438 * INTEGER034, 0
  458.     Endif
  459.     TSTRING006(1) = Date()
  460.     TSTRING006(2) = Time()
  461.     FDWrite TSTRING006(0), 25
  462.     FDWrite TSTRING006(1), 8
  463.     FDWrite TSTRING006(2), 5
  464.     For INTEGER036 = 3 To 72
  465.         FDWrite TSTRING006(INTEGER036), 20
  466.     Next
  467.  
  468.     EndProc
  469.  
  470.  
  471. ;------------------------------------------------------------------------------
  472.  
  473.     Procedure PROC012()
  474.  
  475.     FClose 1
  476.     FClose 2
  477.  
  478.     EndProc
  479.  
  480.  
  481. ;------------------------------------------------------------------------------
  482.  
  483.     Procedure PROC013()
  484.  
  485.     String   STRING015
  486.  
  487.     If (Exist(STRING010)) Goto LABEL018
  488.     BOOLEAN002 = 0
  489.     Goto LABEL021
  490.     :LABEL018
  491.     BOOLEAN002 = 0
  492.     FOpen 3, STRING010, 0, 0
  493.     :LABEL019
  494.     If (Ferr(3)) Goto LABEL020
  495.     FGet 3, STRING015
  496.     STRING015 = Upper(STRING015)
  497.     If (STRING015 == TSTRING006(0)) Then
  498.         BOOLEAN002 = 1
  499.     Else
  500.         Goto LABEL019
  501.     Endif
  502.     :LABEL020
  503.     FClose 3
  504.     :LABEL021
  505.  
  506.     EndProc
  507.  
  508.  
  509. ;------------------------------------------------------------------------------
  510.  
  511.     Procedure PROC014()
  512.  
  513.     Delete STRING008
  514.     Delete STRING009
  515.  
  516.     EndProc
  517.  
  518.     :LABEL022
  519.     RdUNet PcbNode()
  520.     WrUNet PcbNode(), UN_Stat(), UN_Name(), "Voting for Scenial!", "AEGIS SCENIAL DOOR", ""
  521.     GetUser
  522.     If (AnsiOn() == 0) Then
  523.         PrintLn "@X04Ansi is required to run the vote door!"
  524.     Endif
  525.     PROC003()
  526.     STRING007 = PPEPath()
  527.     STRING008 = STRING007 + "SCNAMES.DAT"
  528.     STRING009 = STRING007 + "SCVOTES.DAT"
  529.     STRING010 = STRING007 + "SCSUPER.DAT"
  530.     STRING012 = STRING007 + "LOGO." + LangExt()
  531.     If (Exist(STRING012) <> 1) Then
  532.         PrintLn STRING012, " : File not found... please report it to sysop"
  533.         Goto LABEL023
  534.     Else
  535.         FOpen 1, STRING012, 0, 0
  536.         INTEGER033 = 0
  537.         While (!Ferr(1) && (INTEGER033 < 14)) Do
  538.             FGet 1, TSTRING013(INTEGER033)
  539.             Inc INTEGER033
  540.         EndWhile
  541.         FClose 1
  542.     Endif
  543.     If (FUNCTION003() == 1) Then
  544.         If (FUNCTION004() == 0) Then
  545.             Goto LABEL023
  546.         Endif
  547.         PROC013()
  548.         PROC008()
  549.         PROC011()
  550.         PROC012()
  551.     Endif
  552.     PROC004()
  553.     :LABEL023
  554.     End
  555.  
  556. ;------------------------------------------------------------------------------
  557.  
  558.     Procedure PROC005()
  559.  
  560.     Integer  INTEGER037
  561.  
  562.     Cls
  563.     Print "@POFF@"
  564.     For INTEGER037 = 0 To INTEGER033
  565.         PrintLn TSTRING013(INTEGER037)
  566.     Next
  567.  
  568.     EndProc
  569.  
  570.  
  571. ;------------------------------------------------------------------------------
  572.  
  573.     Procedure PROC008()
  574.  
  575.     Integer  INTEGER038
  576.  
  577.     :LABEL024
  578.     Cls
  579.     PROC005()
  580.     TSTRING001(0) = "≡■≡    About Scenial   ≡■≡"
  581.     TSTRING001(1) = "≡■≡  Vote for Scenial  ≡■≡"
  582.     If (BOOLEAN002 == 0) Then
  583.         TSTRING001(2) = "≡■≡    Back to Board   ≡■≡"
  584.         INTEGER038 = FUNCTION001(2, 1, 40, 15, 8, 31)
  585.     Else
  586.         TSTRING001(2) = "≡■≡     Reset Votes    ≡■≡"
  587.         TSTRING001(3) = "≡■≡ Download all Votes ≡■≡"
  588.         TSTRING001(4) = "≡■≡    Back to Board   ≡■≡"
  589.         INTEGER038 = FUNCTION001(4, 1, 40, 15, 8, 31)
  590.     Endif
  591.     Select Case (INTEGER038)
  592.         Case 0
  593.             PROC006()
  594.         Case 1
  595.             PROC007()
  596.         Case 2
  597.             If (BOOLEAN002 == 0) Then
  598.                 Goto LABEL025
  599.             Else
  600.                 PROC009()
  601.             Endif
  602.         Case 3
  603.             PROC010()
  604.         Case 4
  605.             Goto LABEL025
  606.     End Select
  607.     Goto LABEL024
  608.     :LABEL025
  609.     Cls
  610.     PrintLn "@X0Fa production for SCENIAL diskmag made by:                     ▀"
  611.     PrintLn "@X0F                                                          ▀"
  612.     PrintLn "@X0F    ▄▄▄▄▄▄▄░▄▄▄▄▄▄     ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄  ▄   ▄▄▄▄▄▄▄▄▄▄▄▄"
  613.     PrintLn "@X0F     ▀████▓█████████ ████████████████▀ ▄██████████████▀ ▄██ ▄██████████████▄"
  614.     PrintLn "@X0F       ▀█    ░  ▀███ ███▀       ░ █▀ ▄██▀      ░   █▀ ▄████ ███ ▀         ▀█"
  615.     PrintLn "@X0F         ▄       ▓██ ███        ▄  ▄████     ▄        ▄▄▄▄▄ ▀███▄▄▄▄▄▄     ▌ ▄"
  616.     PrintLn "@X0F     ▄▄▄▄▄▄▄▄▄▄▄ ███ ▓██ ▄▄▄▄▄▄▄▄█▄ ▀███   ▄█▄▄▄▄▄▄▄▄▄ ██▓██ ▄▄▄▄▄▄▄▄▄▄▄"
  617.     PrintLn "@X0F   ▄████████████ ███ ███ ▀█████████▀ ███  ▀███████████ █████ ███████████▓▓▄"
  618.     PrintLn "@X0F   ███▀      ▄▀  ███ ████       ▄▀ ▄████    ▀▄    ▄▄▄▄ █████          ▀▀████"
  619.     PrintLn "@X0F   ███     ▀    ████ ████         ▄ ▀███           ███ █▓██ ▄█▀          ███"
  620.     PrintLn "@X0F   ██▓█▄▄▄▄▄▄▄▄██▓▓█ █████▄▄▄▄▄▄▄▄██▄ ▀███▄▄▄▄▄▄▄▄████ █▓██ ███▄▄▄▄▄▄▄▄▄▓▓██ ▀"
  621.     PrintLn "@X0F    ▀██████████████   ██▓█████████████▄ ██▓██████████ ▄████▄ ████████████▓▀░"
  622.     PrintLn "@X0F   ▄   ▄  ▄  ▄ ▄▄ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄ ▄  ▄<kP^aRT>"
  623.     PrintLn "@X0F                      [THE NUMBER ONE FRENCH PPE TEAM!]"
  624.     PrintLn 
  625.     PrintLn "@X0Fcoded by Gandalf/Aegis-Infiny - use PowerPPL!"
  626.     PrintLn 
  627.  
  628.     EndProc
  629.  
  630.  
  631. ;------------------------------------------------------------------------------
  632.  
  633.     Procedure PROC007()
  634.  
  635.     Integer  INTEGER039
  636.     Integer  INTEGER040
  637.     Integer  INTEGER041
  638.  
  639.     INTEGER040 = 0
  640.     TSTRING001(0) = "≡■≡   Vote for TOP 10 PC Demos    ≡■≡"
  641.     TSTRING001(1) = "≡■≡   Vote for TOP 10 PC Intros   ≡■≡"
  642.     TSTRING001(2) = "≡■≡    Vote for TOP 10 Coders     ≡■≡"
  643.     TSTRING001(3) = "≡■≡   Vote for TOP 10 Musicians   ≡■≡"
  644.     TSTRING001(4) = "≡■≡  Vote for TOP 10 GFX Artists  ≡■≡"
  645.     TSTRING001(5) = "≡■≡     Vote for TOP 10 Boards    ≡■≡"
  646.     TSTRING001(6) = "≡■≡   Vote for TOP 10 Countries   ≡■≡"
  647.     TSTRING001(7) = "≡■≡       Back to Main Menu       ≡■≡"
  648.     :LABEL026
  649.     Cls
  650.     PROC005()
  651.     INTEGER039 = FUNCTION001(7, INTEGER040, 40, 14, 8, 31)
  652.     If ((INTEGER039 >= 0) && (INTEGER039 < 7)) Then
  653.         For INTEGER041 = 0 To 9
  654.             TSTRING002(INTEGER041) = TSTRING006(3 + INTEGER039 * 10 + INTEGER041)
  655.         Next
  656.     Else
  657.         Goto LABEL027
  658.     Endif
  659.     Cls
  660.     PROC005()
  661.     AnsiPos 27, 12
  662.     Select Case (INTEGER039)
  663.         Case 0
  664.             Print "@X07≡■≡   TOP 10 PC Demos    ≡■≡"
  665.         Case 1
  666.             Print "@X07≡■≡   TOP 10 PC Intros   ≡■≡"
  667.         Case 2
  668.             Print "@X07≡■≡   TOP 10 PC Coders   ≡■≡"
  669.         Case 3
  670.             Print "@X07≡■≡  TOP 10 PC Musicians ≡■≡"
  671.         Case 4
  672.             Print "@X07≡■≡ TOP 10 PC GFX Artists≡■≡"
  673.         Case 5
  674.             Print "@X07≡■≡   TOP 10 PC Boards   ≡■≡"
  675.         Case 6
  676.             Print "@X07≡■≡  TOP 10 PC Countries ≡■≡"
  677.         Case 7
  678.             Goto LABEL027
  679.     End Select
  680.     PROC002(9, 20, 40, 13, 8, 31)
  681.     INTEGER040 = INTEGER039
  682.     For INTEGER041 = 0 To 9
  683.         TSTRING006(3 + INTEGER039 * 10 + INTEGER041) = TSTRING002(INTEGER041)
  684.     Next
  685.     Goto LABEL026
  686.     :LABEL027
  687.  
  688.     EndProc
  689.  
  690.  
  691. ;------------------------------------------------------------------------------
  692.  
  693.     Procedure PROC006()
  694.  
  695.     String   STRING016
  696.     String   STRING017
  697.  
  698.     STRING016 = STRING007 + "ABOUT"
  699.     If (Exist(STRING016) == 1) Then
  700.         Cls
  701.         DispFile STRING016, 4 + 2
  702.         STRING017 = ""
  703.         :LABEL028
  704.         STRING017 = Inkey()
  705.         If (STRING017 <> Chr(13)) Then
  706.             Goto LABEL028
  707.         Endif
  708.     Endif
  709.  
  710.     EndProc
  711.  
  712.  
  713. ;------------------------------------------------------------------------------
  714.  
  715.     Procedure PROC009()
  716.  
  717.     String   STRING018
  718.  
  719.     STRING018 = NoChar()
  720.     Cls
  721.     InputYN "@X0FDo you REALLY want to reset the vote file (" + YesChar() + "@X0F/" + NoChar() + "@X0F)", STRING018, 8
  722.     If (STRING018 == YesChar()) Then
  723.         PROC012()
  724.         PROC014()
  725.         Eval FUNCTION003()
  726.         Eval FUNCTION004()
  727.         PrintLn "@X0FVote database is reseted!"
  728.     Endif
  729.  
  730.     EndProc
  731.  
  732.  
  733. ;------------------------------------------------------------------------------
  734.  
  735.     Procedure PROC010()
  736.  
  737.     Integer  INTEGER042
  738.     Integer  INTEGER043
  739.     Integer  INTEGER044
  740.     String   STRING019
  741.     Integer  INTEGER045
  742.     String   STRING020
  743.  
  744.     Cls
  745.     STRING011 = STRING007 + "SCVOTES.TXT"
  746.     FCreate 3, STRING011, 1, 3
  747.     PrintLn "@X04Please wait while creating ascii vote file..."
  748.     INTEGER042 = FileInf(STRING009, 4)
  749.     INTEGER043 = INTEGER042 / 1438
  750.     INTEGER044 = 1
  751.     PrintLn "@X04Processing @X0F", INTEGER043, "@X04 user(s)..."
  752.     Frewind 2
  753.     :LABEL029
  754.     FPutLn 3, "═══════════════════════════════════════════════════════════════"
  755.     FRead 2, STRING019, 25
  756.     FPutLn 3, "Name: ", STRING019
  757.     FRead 2, STRING019, 8
  758.     FPutLn 3, "Last Vote Date: ", STRING019
  759.     FRead 2, STRING019, 5
  760.     FPutLn 3, "Time: ", STRING019
  761.     FPutLn 3, "───TOP 10 DEMOS──────────────────────────────────────────────"
  762.     For INTEGER045 = 3 To 12
  763.         FRead 2, STRING019, 20
  764.         FPutLn 3, "#", INTEGER045 - 2, ": ", STRING019
  765.     Next
  766.     FPutLn 3, "───TOP 10 INTROS─────────────────────────────────────────────"
  767.     For INTEGER045 = 13 To 22
  768.         FRead 2, STRING019, 20
  769.         FPutLn 3, "#", INTEGER045 - 12, ": ", STRING019
  770.     Next
  771.     FPutLn 3, "───TOP 10 CODERS─────────────────────────────────────────────"
  772.     For INTEGER045 = 23 To 32
  773.         FRead 2, STRING019, 20
  774.         FPutLn 3, "#", INTEGER045 - 22, ": ", STRING019
  775.     Next
  776.     FPutLn 3, "───TOP 10 MUSICIANS──────────────────────────────────────────"
  777.     For INTEGER045 = 33 To 42
  778.         FRead 2, STRING019, 20
  779.         FPutLn 3, "#", INTEGER045 - 32, ": ", STRING019
  780.     Next
  781.     FPutLn 3, "───TOP 10 GFX ARTISTS────────────────────────────────────────"
  782.     For INTEGER045 = 43 To 52
  783.         FRead 2, STRING019, 20
  784.         FPutLn 3, "#", INTEGER045 - 42, ": ", STRING019
  785.     Next
  786.     FPutLn 3, "───TOP 10 BBS────────────────────────────────────────────────"
  787.     For INTEGER045 = 53 To 62
  788.         FRead 2, STRING019, 20
  789.         FPutLn 3, "#", INTEGER045 - 52, ": ", STRING019
  790.     Next
  791.     FPutLn 3, "───TOP 10 COUNTRIES──────────────────────────────────────────"
  792.     For INTEGER045 = 63 To 72
  793.         FRead 2, STRING019, 20
  794.         FPutLn 3, "#", INTEGER045 - 62, ": ", STRING019
  795.     Next
  796.     If (INTEGER044 < INTEGER043) Then
  797.         Inc INTEGER044
  798.         Goto LABEL029
  799.     Endif
  800.     FPutLn 3, "═══════════════════════════════════════════════════════════════"
  801.     FClose 3
  802.     Flag STRING011
  803.     PrintLn "@X04Done! Vote file is flagged for download. Press enter to continue..."
  804.     :LABEL030
  805.     STRING020 = Inkey()
  806.     If (STRING020 <> Chr(13)) Then
  807.         Goto LABEL030
  808.     Endif
  809.  
  810.     EndProc
  811.  
  812.  
  813. ;------------------------------------------------------------------------------
  814. ;
  815. ; Usage report (before postprocessing)
  816. ;
  817. ; ■ Statements used :
  818. ;
  819. ;    2       End
  820. ;    10      Cls
  821. ;    12      Color 
  822. ;    158     Goto 
  823. ;    129     Let 
  824. ;    22      Print 
  825. ;    29      PrintLn 
  826. ;    77      If 
  827. ;    1       DispFile 
  828. ;    3       FCreate 
  829. ;    4       FOpen 
  830. ;    5       FClose 
  831. ;    3       FGet 
  832. ;    20      FPutLn 
  833. ;    1       GetUser
  834. ;    2       Delete 
  835. ;    1       AdjTime 
  836. ;    1       InputYN 
  837. ;    10      Gosub 
  838. ;    8       Return
  839. ;    6       Inc 
  840. ;    3       Dec 
  841. ;    1       RdUNet 
  842. ;    1       WrUNet 
  843. ;    17      AnsiPos 
  844. ;    1       Frewind 
  845. ;    4       FSeek 
  846. ;    10      FRead 
  847. ;    2       FDefIn 
  848. ;    1       FDefOut 
  849. ;    4       FDRead 
  850. ;    4       FDWrite 
  851. ;    1       Flag 
  852. ;    1       SearchInit 
  853. ;    1       SearchFind 
  854. ;    1       SearchStop
  855. ;    14      EndProc
  856. ;    4       EndFunc
  857. ;    2       Eval 
  858. ;
  859. ;
  860. ; ■ Functions used :
  861. ;
  862. ;    4       *
  863. ;    5       /
  864. ;    2       %
  865. ;    64      +
  866. ;    21      -
  867. ;    46      ==
  868. ;    4       <>
  869. ;    27      <
  870. ;    19      <=
  871. ;    5       >
  872. ;    39      >=
  873. ;    78      !
  874. ;    40      &&
  875. ;    28      ||
  876. ;    12      Len(
  877. ;    3       Upper()
  878. ;    1       Left()
  879. ;    3       Right()
  880. ;    4       Ferr()
  881. ;    10      Chr()
  882. ;    1       Date()
  883. ;    3       Time()
  884. ;    2       U_Name()
  885. ;    2       NoChar()
  886. ;    2       YesChar()
  887. ;    4       Inkey()
  888. ;    1       PPEPath()
  889. ;    2       PcbNode()
  890. ;    1       UN_Stat()
  891. ;    1       UN_Name()
  892. ;    1       MinLeft()
  893. ;    4       Exist()
  894. ;    1       LangExt()
  895. ;    1       AnsiOn()
  896. ;    1       FileInf()
  897. ;
  898. ;------------------------------------------------------------------------------
  899. ;
  900. ; Analysis flags : Af
  901. ;
  902. ; A - Adjust online time remaining ■ 5
  903. ;     Program modify the amount of online time remaining, this may
  904. ;     be a way to bypass time limits
  905. ;     ■ Search for : ADJTIME
  906. ;
  907. ; f - Flag files for download ■ 3
  908. ;     This may be normal if a PPE needs to send some files, but since
  909. ;     this statement allows flagging of any file on the hard disk, you
  910. ;     have to be carefull. Check!
  911. ;     ■ Search for : FLAG
  912. ;
  913. ;------------------------------------------------------------------------------
  914. ;
  915. ; Postprocessing report
  916. ;
  917. ;    18      For/Next
  918. ;    1       While/EndWhile
  919. ;    34      If/Then or If/Then/Else
  920. ;    4       Select Case
  921. ;
  922. ;------------------------------------------------------------------------------
  923. ;                 AEGiS Corp - Break the routines, code against the machines!
  924. ;------------------------------------------------------------------------------
  925.