home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / pcboard / ripjacka.zip / RIP-JACK.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1993-07-02  |  14KB  |  746 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 1.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  TINTEGER001(53)
  20.     Integer  TINTEGER002(5)
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     Integer  INTEGER005
  24.     Integer  INTEGER006
  25.     Integer  INTEGER007
  26.     Integer  INTEGER008
  27.     Integer  INTEGER009
  28.     Integer  INTEGER010
  29.     Integer  INTEGER011
  30.     Integer  INTEGER012
  31.     Integer  INTEGER013
  32.     Integer  INTEGER014
  33.     Integer  INTEGER015
  34.     Integer  INTEGER016
  35.     Integer  INTEGER017
  36.     Integer  INTEGER018
  37.     Integer  INTEGER019
  38.     Integer  TINTEGER020(6)
  39.     Integer  TINTEGER021(6)
  40.     Integer  INTEGER022
  41.     String   TSTRING001(5)
  42.     String   TSTRING002(5)
  43.     String   STRING003
  44.     String   STRING004
  45.     String   STRING005
  46.     String   STRING006
  47.     String   STRING007
  48.     String   STRING008
  49.     String   STRING009
  50.  
  51. ;------------------------------------------------------------------------------
  52.  
  53.     Cls
  54.     SPrintLn "User is now playing RIP-Jack."
  55.     GetUser
  56.     STRING004 = PPEPath() + "BLKJACK.LOG"
  57.     FAppend 1, STRING004, 1, 0
  58.     FPutLn 1, "*****************************************************"
  59.     FPutLn 1, U_Name()
  60.     STRING007 = "STARTS WITH "
  61.     INTEGER003 = MinLeft()
  62.     STRING008 = I2S(INTEGER003, 10)
  63.     STRING007 = STRING007 + STRING008 + " MINUTES"
  64.     FPutLn 1, STRING007
  65.     STRING007 = ""
  66.     STRING008 = ""
  67.     TSTRING001(1) = "SPADES"
  68.     TSTRING001(2) = "CLUBS"
  69.     TSTRING001(3) = "HEARTS"
  70.     TSTRING001(4) = "DIAMONDS"
  71.     INTEGER019 = 1
  72.     MPrintLn "!|*|1K|#|#|#"
  73.     MPrintLn "!|1K|c04|Y01000400|#|#|#"
  74.     MPrintLn "!|1K|@5F10TnT Computers|#|#|#"
  75.     MPrintLn "!|1K|c01|Y01000400|#|#|#"
  76.     MPrintLn "!|1K|@7020Presents|#|#|#"
  77.     MPrintLn "!|1K|c02|Y01000800|#|#|#"
  78.     MPrintLn "!|1K|@4050RIP-Jack|#|#|#"
  79.     MPrintLn "!|1K|1B00000200LC030F000F080700000F07000000|Y00000100|#|#|#"
  80.     MPrintLn "!|1U408J70990000<>Continue<>|1M00408G709C1100000^M|#|#|#"
  81.     MPrintLn "!|1UA08JD0990000<>Instructions<>|1M00A08GD09C1100000I|#|#|#"
  82.     :LABEL001
  83.     STRING007 = Inkey()
  84.     If (STRING007 == "") Then
  85.         Goto LABEL001
  86.     Endif
  87.     Goto LABEL002
  88.     STRING007 = "My aren't we nosey?  Modification of this code is ILLEGAL!"
  89.     :LABEL002
  90.     Select Case (STRING007)
  91.         Case "I"
  92.             MPrintLn "!|*"
  93.             MPrintLn "!|c01|Y01000200|#|#|#"
  94.             MPrintLn "!|@7F0ARIP-Jack"
  95.             MPrintLn "!|c02|Y00000100|#|#|#"
  96.             MPrintLn "!|@041AThe rules of RIP-Jack are identical to those of Black Jack.  The object"
  97.             MPrintLn "!|@041Jis to get as close to 21 without going over.  "
  98.             MPrintLn "!|@0420In Black Jack, face cards count 10, Aces count 1 or 11, and all other cards"
  99.             MPrintLn "!|@042Acount their value.  I.E. a 3 of clubs counts 3 points and a 8 of hearts"
  100.             MPrintLn "!|@042Jwould count 8 points.  Going over a total of 21 will cause you to bust and"
  101.             MPrintLn "!|@042Uloose the hand."
  102.             MPrintLn "!|@0439If you are dealt an ace and a face card or a 10 then you Black Jack.  You"
  103.             MPrintLn "!|@043Jget paid 2.0 to 1 when you Black jack.  If you get closer to 21 then the"
  104.             MPrintLn "!|@043Udealer does, then you get paid 1.0 to 1.  The dealer will hit on 16 and stay"
  105.             MPrintLn "!|@0444on 17."
  106.             MPrintLn "!|@044JOn your first card, you may choose to double down.  This will double your bet"
  107.             MPrintLn "!|@044Uand deal you one more card.  A good time to double down is when you get dealt"
  108.             MPrintLn "!|@0453a total of 11 points on your first card and you have not seen a lot of face"
  109.             MPrintLn "!|@045Ccards.  After you double down, the dealer will deal his cards."
  110.             MPrintLn "!|@045SYour time online is converted into money.  You get $10 for every minute of"
  111.             MPrintLn "!|@0463time left online.  This is what you use to bet with.  When you quit the game"
  112.             MPrintLn "!|@046Dyour money will be converted back into time online.  You can use this time"
  113.             MPrintLn "!|@046Oduring this session only.  If you log off without storing your time, you will"
  114.             MPrintLn "!|@046Yloose any extra time won.  If you loose all your money, then you will be left"
  115.             MPrintLn "!|@0479with no time and be logged off."
  116.             MPrintLn "!|@047PWhen a hand is over, to continue with the game, just click the mouse button and"
  117.             MPrintLn "!|@047Zyou will be returned to the bet screen.  Thats everything, so enjoy the game."
  118.             MPrintLn "!|c04|Y01000200|#|#|#"
  119.             MPrintLn "!|@7N8IHit Enter"
  120.             :LABEL003
  121.             STRING007 = Inkey()
  122.         Case ""
  123.             Goto LABEL003
  124.     End Select
  125.     MPrintLn "!|*|1K|#|#|#"
  126.     For INTEGER003 = 1 To 52
  127.         TINTEGER001(INTEGER003) = INTEGER003
  128.     Next
  129.     INTEGER017 = MinLeft() * 10
  130.     :LABEL004
  131.     INTEGER018 = INTEGER017 / 10
  132.     INTEGER003 = MinLeft()
  133.     INTEGER004 = INTEGER018 - INTEGER003
  134.     AdjTime INTEGER004
  135.     PutUser
  136.     If (INTEGER017 == 0) Then
  137.         MPrintLn "!|S0000"
  138.         MPrintLn "!|B0039H959"
  139.         MPrintLn "!|1K|c04|Y01000400|#|#|#"
  140.         MPrintLn "!|1K|@5040* Your Broke *"
  141.         MPrintLn "!|1M000000I0G01000000^M"
  142.         :LABEL005
  143.         STRING007 = Inkey()
  144.         If (STRING007 == "") Then
  145.             Goto LABEL005
  146.         Endif
  147.         INTEGER018 = INTEGER017 / 10
  148.         INTEGER003 = MinLeft()
  149.         INTEGER004 = INTEGER018 - INTEGER003
  150.         AdjTime INTEGER004
  151.         PutUser
  152.         MPrintLn "!|*"
  153.         STRING007 = "ENDS WITH "
  154.         INTEGER003 = MinLeft()
  155.         STRING008 = I2S(INTEGER003, 10)
  156.         STRING007 = STRING007 + STRING008 + " MINUTES"
  157.         FPutLn 1, STRING007
  158.         FClose 1
  159.         End
  160.     Endif
  161.     If (INTEGER019 > 40) Then
  162.         INTEGER019 = 1
  163.     Endif
  164.     For INTEGER003 = 1 To 5
  165.         TINTEGER020(INTEGER003) = 0
  166.         TINTEGER021(INTEGER003) = 0
  167.     Next
  168.     MPrintLn "!|1K|c04|Y01000400"
  169.     MPrintLn "!|1K|@0F3AYou have "
  170.     MPrintLn "!|1K|c01|Y01000400"
  171.     STRING007 = I2S(INTEGER017, 10)
  172.     STRING007 = "$" + STRING007
  173.     STRING007 = "!|1K|@503A" + STRING007
  174.     MPrintLn STRING007
  175.     MPrintLn "!|1UA03FD04A00000<>BET<>|1M00A03FD04A1000000B"
  176.     MPrintLn "!|1UE03FH04A0000<>QUIT<>|1M00E03FH04A01000000Q|#|#|#"
  177.     :LABEL006
  178.     STRING007 = Inkey()
  179.     If (STRING007 == "") Then
  180.         Goto LABEL006
  181.     Endif
  182.     If (STRING007 == "B") Then
  183.         MPrintLn "!|1K|c01|Y01000400"
  184.         MPrintLn "!|1K|@0A4AEnter Bet "
  185.         MPrintLn "!|1K|c04"
  186.         MPrintLn "!|T$"
  187.         STRING003 = ""
  188.         :LABEL007
  189.         STRING007 = Inkey()
  190.         If (STRING007 == "") Then
  191.             Goto LABEL007
  192.         Endif
  193.         INTEGER003 = Asc(STRING007)
  194.         If (INTEGER003 == 13) Then
  195.             INTEGER005 = S2I(STRING003, 10)
  196.             If (INTEGER005 > INTEGER017) Then
  197.                 MPrintLn "!|S0000"
  198.                 MPrintLn "!|B004F9060"
  199.                 Goto LABEL004
  200.             Endif
  201.             INTEGER017 = INTEGER017 - STRING003
  202.             Goto LABEL008
  203.         Endif
  204.         If (INTEGER003 == 27) Then
  205.             MPrintLn "!|S0000"
  206.             MPrintLn "!|B004F9060"
  207.             Goto LABEL006
  208.         Endif
  209.         If (Len(STRING003) == 3) Then
  210.             Goto LABEL007
  211.         Endif
  212.         If (INTEGER003 < 48) Then
  213.             Goto LABEL007
  214.         Endif
  215.         If (INTEGER003 > 57) Then
  216.             Goto LABEL007
  217.         Endif
  218.         STRING003 = STRING003 + STRING007
  219.         STRING007 = "!|T" + STRING007
  220.         MPrintLn STRING007
  221.         Goto LABEL007
  222.     Endif
  223.     If (STRING007 == "Q") Then
  224.         INTEGER018 = INTEGER017 / 10
  225.         INTEGER003 = MinLeft()
  226.         INTEGER004 = INTEGER018 - INTEGER003
  227.         AdjTime INTEGER004
  228.         PutUser
  229.         MPrintLn "!|*"
  230.         STRING007 = "ENDS WITH "
  231.         INTEGER003 = MinLeft()
  232.         STRING008 = I2S(INTEGER003, 10)
  233.         STRING007 = STRING007 + STRING008 + " MINUTES"
  234.         FPutLn 1, STRING007
  235.         End
  236.     Endif
  237.     Goto LABEL006
  238.     :LABEL008
  239.     MPrintLn "!|*"
  240.     If (INTEGER019 == 1) Then
  241.         MPrintLn "SHUFFLING..."
  242.         Gosub LABEL019
  243.     Endif
  244.     MPrintLn "!|*"
  245.     INTEGER011 = INTEGER019
  246.     INTEGER009 = INTEGER011
  247.     INTEGER019 = INTEGER019 + 1
  248.     TINTEGER002(1) = 30
  249.     TINTEGER002(2) = 10
  250.     TINTEGER002(3) = 130
  251.     TINTEGER002(4) = 110
  252.     For INTEGER003 = 1 To 4
  253.         INTEGER013 = TINTEGER002(INTEGER003)
  254.         Gosub LABEL022
  255.         TSTRING002(INTEGER003) = STRING009
  256.     Next
  257.     Gosub LABEL020
  258.     TINTEGER021(1) = INTEGER022
  259.     STRING007 = "!|1K|S0101|B" + TSTRING002(1) + TSTRING002(2) + TSTRING002(3) + TSTRING002(4) + "|#|#|#"
  260.     MPrintLn STRING007
  261.     INTEGER011 = INTEGER019
  262.     INTEGER019 = INTEGER019 + 1
  263.     TINTEGER002(1) = 30
  264.     TINTEGER002(2) = 220
  265.     TINTEGER002(3) = 130
  266.     TINTEGER002(4) = 320
  267.     For INTEGER003 = 1 To 4
  268.         INTEGER013 = TINTEGER002(INTEGER003)
  269.         Gosub LABEL022
  270.         TSTRING002(INTEGER003) = STRING009
  271.     Next
  272.     Gosub LABEL021
  273.     TINTEGER020(1) = INTEGER022
  274.     INTEGER011 = INTEGER019
  275.     INTEGER019 = INTEGER019 + 1
  276.     TINTEGER002(1) = 150
  277.     TINTEGER002(2) = 10
  278.     TINTEGER002(3) = 250
  279.     TINTEGER002(4) = 110
  280.     For INTEGER003 = 1 To 4
  281.         INTEGER013 = TINTEGER002(INTEGER003)
  282.         Gosub LABEL022
  283.         TSTRING002(INTEGER003) = STRING009
  284.     Next
  285.     Gosub LABEL021
  286.     TINTEGER021(2) = INTEGER022
  287.     INTEGER011 = INTEGER019
  288.     INTEGER019 = INTEGER019 + 1
  289.     TINTEGER002(1) = 150
  290.     TINTEGER002(2) = 220
  291.     TINTEGER002(3) = 250
  292.     TINTEGER002(4) = 320
  293.     For INTEGER003 = 1 To 4
  294.         INTEGER013 = TINTEGER002(INTEGER003)
  295.         Gosub LABEL022
  296.         TSTRING002(INTEGER003) = STRING009
  297.     Next
  298.     Gosub LABEL021
  299.     TINTEGER020(2) = INTEGER022
  300.     Gosub LABEL024
  301.     If (INTEGER007 == 21) Then
  302.         MPrintLn "!|S0000"
  303.         MPrintLn "!|B0039H959"
  304.         MPrintLn "!|1K|c04|Y01000400|#|#|#"
  305.         MPrintLn "!|1K|@5040* Black Jack *"
  306.         :LABEL009
  307.         STRING007 = Inkey()
  308.         If (STRING007 == "") Then
  309.             Goto LABEL009
  310.         Endif
  311.         MPrintLn "!|S0000"
  312.         MPrintLn "!|B0039H959"
  313.         INTEGER005 = S2I(STRING003, 10)
  314.         INTEGER017 = INTEGER017 + INTEGER005 * 3
  315.         Goto LABEL004
  316.     Endif
  317.     MPrintLn "!|1U1040405000000<>HIT<>|1M00104040501000000H"
  318.     MPrintLn "!|1U7I40AI5000000<>STAY<>|1M007I40AI501000000S"
  319.     MPrintLn "!|1UE040H05000000<>DOUBLE<>|1M00E040H0501000000D"
  320.     INTEGER016 = 2
  321.     :LABEL010
  322.     STRING007 = Inkey()
  323.     If (STRING007 == "") Then
  324.         Goto LABEL010
  325.     Endif
  326.     If (STRING007 == "S") Then
  327.         Goto LABEL013
  328.     Endif
  329.     If (STRING007 == "D") Then
  330.         If (INTEGER016 <> 2) Then
  331.             Goto LABEL010
  332.         Endif
  333.         INTEGER005 = S2I(STRING003, 10)
  334.         If (INTEGER005 > INTEGER017) Then
  335.             Goto LABEL010
  336.         Endif
  337.         INTEGER017 = INTEGER017 - INTEGER005
  338.         STRING003 = I2S(INTEGER005 * 2, 10)
  339.         INTEGER016 = INTEGER016 + 1
  340.         INTEGER011 = INTEGER019
  341.         INTEGER019 = INTEGER019 + 1
  342.         TINTEGER002(1) = (INTEGER016 - 1) * 120 + 30
  343.         TINTEGER002(2) = 220
  344.         TINTEGER002(3) = TINTEGER002(1) + 100
  345.         TINTEGER002(4) = 320
  346.         For INTEGER003 = 1 To 4
  347.             INTEGER013 = TINTEGER002(INTEGER003)
  348.             Gosub LABEL022
  349.             TSTRING002(INTEGER003) = STRING009
  350.         Next
  351.         Gosub LABEL021
  352.         TINTEGER020(INTEGER016) = INTEGER022
  353.         STRING005 = "S"
  354.     Endif
  355.     If (STRING007 == "H") Then
  356.         INTEGER016 = INTEGER016 + 1
  357.         INTEGER011 = INTEGER019
  358.         INTEGER019 = INTEGER019 + 1
  359.         TINTEGER002(1) = (INTEGER016 - 1) * 120 + 30
  360.         TINTEGER002(2) = 220
  361.         TINTEGER002(3) = TINTEGER002(1) + 100
  362.         TINTEGER002(4) = 320
  363.         For INTEGER003 = 1 To 4
  364.             INTEGER013 = TINTEGER002(INTEGER003)
  365.             Gosub LABEL022
  366.             TSTRING002(INTEGER003) = STRING009
  367.         Next
  368.         Gosub LABEL021
  369.         TINTEGER020(INTEGER016) = INTEGER022
  370.     Endif
  371.     Gosub LABEL024
  372.     If (INTEGER007 > 21) Then
  373.         MPrintLn "!|S0000"
  374.         MPrintLn "!|B0039H959"
  375.         MPrintLn "!|1K|c04|Y01000400|#|#|#"
  376.         MPrintLn "!|1K|@5040* Flat Busted *"
  377.         MPrintLn "!|1M000000I0G01000000^M"
  378.         :LABEL011
  379.         STRING007 = Inkey()
  380.         If (STRING007 == "") Then
  381.             Goto LABEL011
  382.         Endif
  383.         MPrintLn "!|S0000"
  384.         MPrintLn "!|B0039H959"
  385.         Goto LABEL004
  386.     Endif
  387.     If (INTEGER007 < 22) Then
  388.         If (INTEGER016 == 5) Then
  389.             MPrintLn "!|S0000"
  390.             MPrintLn "!|B0039H959"
  391.             MPrintLn "!|1K|c04|Y01000400|#|#|#"
  392.             MPrintLn "!|1K|@5040* 5 Card Charlie *"
  393.             MPrintLn "!|1M000000I0G01000000^M"
  394.             :LABEL012
  395.             STRING007 = Inkey()
  396.             If (STRING007 == "") Then
  397.                 Goto LABEL012
  398.             Endif
  399.             MPrintLn "!|S0000"
  400.             MPrintLn "!|B0039H959"
  401.             INTEGER005 = S2I(STRING003, 10)
  402.             INTEGER017 = INTEGER017 + INTEGER005 * 2
  403.             Goto LABEL004
  404.         Endif
  405.     Endif
  406.     If (INTEGER007 == 21) Then
  407.         Goto LABEL013
  408.     Endif
  409.     If (STRING005 == "S") Then
  410.         Goto LABEL013
  411.     Endif
  412.     MPrintLn "!|1U1040405000000<>HIT<>|1M00104040501000000H"
  413.     MPrintLn "!|1U7I40AI5000000<>STAY<>|1M007I40AI501000000S"
  414.     MPrintLn "!|1UE040H05000000<>DOUBLE<>|1M00E040H0501000000D"
  415.     Goto LABEL010
  416.     Goto LABEL004
  417.     :LABEL013
  418.     INTEGER011 = INTEGER009
  419.     INTEGER009 = INTEGER011
  420.     TINTEGER002(1) = 30
  421.     TINTEGER002(2) = 10
  422.     TINTEGER002(3) = 130
  423.     TINTEGER002(4) = 110
  424.     For INTEGER003 = 1 To 4
  425.         INTEGER013 = TINTEGER002(INTEGER003)
  426.         Gosub LABEL022
  427.         TSTRING002(INTEGER003) = STRING009
  428.     Next
  429.     Gosub LABEL021
  430.     STRING005 = ""
  431.     MPrintLn "!|S0000"
  432.     MPrintLn "!|B0039H959"
  433.     Gosub LABEL023
  434.     If (INTEGER007 > 16) Then
  435.         STRING006 = "S"
  436.         Goto LABEL015
  437.     Endif
  438.     For INTEGER008 = 3 To 5
  439.         INTEGER011 = INTEGER019
  440.         INTEGER019 = INTEGER019 + 1
  441.         TINTEGER002(1) = (INTEGER008 - 1) * 120 + 30
  442.         TINTEGER002(2) = 10
  443.         TINTEGER002(3) = TINTEGER002(1) + 100
  444.         TINTEGER002(4) = 110
  445.         For INTEGER003 = 1 To 4
  446.             INTEGER013 = TINTEGER002(INTEGER003)
  447.             Gosub LABEL022
  448.             TSTRING002(INTEGER003) = STRING009
  449.         Next
  450.         Gosub LABEL021
  451.         TINTEGER021(INTEGER008) = INTEGER022
  452.         Gosub LABEL023
  453.         If (INTEGER007 > 21) Then
  454.             MPrintLn "!|S0000"
  455.             MPrintLn "!|B0039H959"
  456.             MPrintLn "!|1K|c04|Y01000400|#|#|#"
  457.             MPrintLn "!|1K|@5040* Dealer Busts *"
  458.             MPrintLn "!|1M000000I0G01000000^M"
  459.             :LABEL014
  460.             STRING007 = Inkey()
  461.             If (STRING007 == "") Then
  462.                 Goto LABEL014
  463.             Endif
  464.             MPrintLn "!|S0000"
  465.             MPrintLn "!|B0039H959"
  466.             INTEGER005 = S2I(STRING003, 10)
  467.             INTEGER017 = INTEGER017 + INTEGER005 * 2
  468.             Goto LABEL004
  469.         Endif
  470.         If (INTEGER007 > 16) Then
  471.             STRING006 = "S"
  472.         Endif
  473.         :LABEL015
  474.         If (STRING006 == "S") Then
  475.             STRING006 = ""
  476.             INTEGER006 = INTEGER007
  477.             Gosub LABEL024
  478.             If (INTEGER007 > INTEGER006) Then
  479.                 MPrintLn "!|S0000"
  480.                 MPrintLn "!|B0039H959"
  481.                 MPrintLn "!|1K|c04|Y01000400|#|#|#"
  482.                 MPrintLn "!|1K|@5040* You Win *"
  483.                 MPrintLn "!|1M000000I0G01000000^M"
  484.                 :LABEL016
  485.                 STRING007 = Inkey()
  486.                 If (STRING007 == "") Then
  487.                     Goto LABEL016
  488.                 Endif
  489.                 MPrintLn "!|S0000"
  490.                 MPrintLn "!|B0039H959"
  491.                 INTEGER005 = S2I(STRING003, 10)
  492.                 INTEGER017 = INTEGER017 + INTEGER005 * 2
  493.                 Goto LABEL004
  494.             Endif
  495.             If (INTEGER007 < INTEGER006) Then
  496.                 MPrintLn "!|S0000"
  497.                 MPrintLn "!|B0039H959"
  498.                 MPrintLn "!|1K|c04|Y01000400|#|#|#"
  499.                 MPrintLn "!|1K|@5040* You Loose *"
  500.                 MPrintLn "!|1M000000I0G01000000^M"
  501.                 :LABEL017
  502.                 STRING007 = Inkey()
  503.                 If (STRING007 == "") Then
  504.                     Goto LABEL017
  505.                 Endif
  506.                 MPrintLn "!|S0000"
  507.                 MPrintLn "!|B0039H959"
  508.                 Goto LABEL004
  509.             Endif
  510.             If (INTEGER007 == INTEGER006) Then
  511.                 MPrintLn "!|S0000"
  512.                 MPrintLn "!|B0039H959"
  513.                 MPrintLn "!|1K|c04|Y01000400|#|#|#"
  514.                 MPrintLn "!|1K|@5040* You Push *"
  515.                 MPrintLn "!|1M000000I0G01000000^M"
  516.                 :LABEL018
  517.                 STRING007 = Inkey()
  518.                 If (STRING007 == "") Then
  519.                     Goto LABEL018
  520.                 Endif
  521.                 MPrintLn "!|S0000"
  522.                 MPrintLn "!|B0039H959"
  523.                 INTEGER005 = S2I(STRING003, 10)
  524.                 INTEGER017 = INTEGER017 + INTEGER005
  525.                 Goto LABEL004
  526.             Endif
  527.         Endif
  528.     Next
  529.     STRING006 = "S"
  530.     Goto LABEL015
  531.     :LABEL019
  532.     For INTEGER003 = 1 To 200
  533.         INTEGER004 = Random(51) + 1
  534.         INTEGER005 = Random(51) + 1
  535.         INTEGER006 = TINTEGER001(INTEGER004)
  536.         INTEGER007 = TINTEGER001(INTEGER005)
  537.         TINTEGER001(INTEGER004) = INTEGER007
  538.         TINTEGER001(INTEGER005) = INTEGER006
  539.     Next
  540.     Return
  541.     :LABEL020
  542.     INTEGER010 = TINTEGER001(INTEGER011) / 13
  543.     INTEGER012 = TINTEGER001(INTEGER011) - INTEGER010 * 13
  544.     If (INTEGER012 <> 0) Then
  545.         INTEGER010 = INTEGER010 + 1
  546.     Endif
  547.     If (INTEGER012 > 1) Then
  548.         If (INTEGER012 < 11) Then
  549.             STRING007 = I2S(INTEGER012, 10)
  550.         Endif
  551.     Endif
  552.     If (INTEGER012 == 1) Then
  553.         STRING007 = "A"
  554.     Endif
  555.     If (INTEGER012 == 11) Then
  556.         STRING007 = "J"
  557.     Endif
  558.     If (INTEGER012 == 12) Then
  559.         STRING007 = "Q"
  560.     Endif
  561.     If (INTEGER012 == 0) Then
  562.         INTEGER012 = 13
  563.         STRING007 = "K"
  564.     Endif
  565.     If (INTEGER012 < 10) Then
  566.         INTEGER022 = INTEGER012
  567.         If (INTEGER022 == 1) Then
  568.             INTEGER022 = 11
  569.         Endif
  570.     Else
  571.         INTEGER022 = 10
  572.     Endif
  573.     If (INTEGER010 == 1) Then
  574.         STRING007 = STRING007 + Chr(6)
  575.     Endif
  576.     If (INTEGER010 == 2) Then
  577.         STRING007 = STRING007 + Chr(5)
  578.     Endif
  579.     If (INTEGER010 == 3) Then
  580.         STRING007 = STRING007 + Chr(3)
  581.     Endif
  582.     If (INTEGER010 == 4) Then
  583.         STRING007 = STRING007 + Chr(4)
  584.     Endif
  585.     Return
  586.     :LABEL021
  587.     STRING007 = "!|S010F"
  588.     MPrintLn STRING007
  589.     STRING007 = "!|B" + TSTRING002(1) + TSTRING002(2) + TSTRING002(3) + TSTRING002(4) + "|#|#|#"
  590.     MPrintLn STRING007
  591.     STRING007 = ""
  592.     Gosub LABEL020
  593.     If (INTEGER010 < 3) Then
  594.         MPrintLn "!|1K|c00|Y00000200|#|#|#"
  595.     Else
  596.         MPrintLn "!|1K|c04|Y00000200|#|#|#"
  597.     Endif
  598.     INTEGER013 = TINTEGER002(1) + 5
  599.     Gosub LABEL022
  600.     TSTRING002(1) = STRING009
  601.     INTEGER013 = TINTEGER002(2) + 5
  602.     Gosub LABEL022
  603.     TSTRING002(2) = STRING009
  604.     STRING008 = "!|1K|@"
  605.     STRING008 = STRING008 + TSTRING002(1) + TSTRING002(2)
  606.     STRING008 = STRING008 + STRING007 + "|#|#|#"
  607.     MPrintLn STRING008
  608.     If (Len(STRING007) == 2) Then
  609.         INTEGER013 = TINTEGER002(1) + 65
  610.     Else
  611.         INTEGER013 = TINTEGER002(1) + 50
  612.     Endif
  613.     Gosub LABEL022
  614.     TSTRING002(1) = STRING009
  615.     INTEGER013 = TINTEGER002(2) + 80
  616.     Gosub LABEL022
  617.     TSTRING002(2) = STRING009
  618.     STRING008 = "!|1K|@"
  619.     STRING008 = STRING008 + TSTRING002(1) + TSTRING002(2) + STRING007 + "|#|#|#"
  620.     MPrintLn ""
  621.     MPrintLn STRING008
  622.     Return
  623.     :LABEL022
  624.     INTEGER014 = INTEGER013 / 36
  625.     INTEGER015 = INTEGER013 - INTEGER014 * 36
  626.     If (INTEGER014 < 10) Then
  627.         STRING009 = Chr(48 + INTEGER014)
  628.     Else
  629.         STRING009 = Chr(55 + INTEGER014)
  630.     Endif
  631.     If (INTEGER015 < 10) Then
  632.         STRING009 = STRING009 + Chr(48 + INTEGER015)
  633.     Else
  634.         STRING009 = STRING009 + Chr(55 + INTEGER015)
  635.     Endif
  636.     Return
  637.     :LABEL023
  638.     INTEGER007 = 0
  639.     For INTEGER003 = 1 To 5
  640.         INTEGER007 = INTEGER007 + TINTEGER021(INTEGER003)
  641.         If (INTEGER007 > 21) Then
  642.             For INTEGER004 = 1 To 5
  643.                 If (TINTEGER021(INTEGER004) == 11) Then
  644.                     TINTEGER021(INTEGER004) = 1
  645.                     INTEGER007 = INTEGER007 - 10
  646.                 Endif
  647.             Next
  648.         Endif
  649.     Next
  650.     Return
  651.     :LABEL024
  652.     INTEGER007 = 0
  653.     For INTEGER003 = 1 To 5
  654.         INTEGER007 = INTEGER007 + TINTEGER020(INTEGER003)
  655.         If (INTEGER007 > 21) Then
  656.             For INTEGER004 = 1 To 5
  657.                 If (TINTEGER020(INTEGER004) == 11) Then
  658.                     TINTEGER020(INTEGER004) = 1
  659.                     INTEGER007 = INTEGER007 - 10
  660.                 Endif
  661.             Next
  662.         Endif
  663.     Next
  664.     Return
  665.  
  666. ;------------------------------------------------------------------------------
  667. ;
  668. ; Usage report (before postprocessing)
  669. ;
  670. ; ■ Statements used :
  671. ;
  672. ;    2       End
  673. ;    1       Cls
  674. ;    139     Goto 
  675. ;    238     Let 
  676. ;    80      If 
  677. ;    1       FAppend 
  678. ;    1       FClose 
  679. ;    5       FPutLn 
  680. ;    1       GetUser
  681. ;    3       PutUser
  682. ;    3       AdjTime 
  683. ;    27      Gosub 
  684. ;    6       Return
  685. ;    1       SPrintLn 
  686. ;    128     MPrintLn 
  687. ;
  688. ;
  689. ; ■ Functions used :
  690. ;
  691. ;    11      *
  692. ;    5       /
  693. ;    85      +
  694. ;    12      -
  695. ;    42      ==
  696. ;    2       <>
  697. ;    24      <
  698. ;    16      <=
  699. ;    12      >
  700. ;    32      >=
  701. ;    80      !
  702. ;    32      &&
  703. ;    16      ||
  704. ;    2       Len(
  705. ;    8       Chr()
  706. ;    1       Asc()
  707. ;    2       Random()
  708. ;    1       U_Name()
  709. ;    13      Inkey()
  710. ;    1       PPEPath()
  711. ;    7       MinLeft()
  712. ;    6       I2S()
  713. ;    7       S2I()
  714. ;
  715. ;------------------------------------------------------------------------------
  716. ;
  717. ; Analysis flags : WAM
  718. ;
  719. ; W - Write user ■ 5
  720. ;     Program writes a user record. Although this may be normal for a
  721. ;     User Editor, it may also be a way to modify an account level.
  722. ;     ■ Search for : PUTUSER
  723. ;
  724. ; A - Adjust online time remaining ■ 5
  725. ;     Program modify the amount of online time remaining, this may
  726. ;     be a way to bypass time limits
  727. ;     ■ Search for : ADJTIME
  728. ;
  729. ; M - Send text to modem only ■ 4
  730. ;     Some informations are sent only to the modem, not to the local
  731. ;     screen, this is a well known way to make stealth backdoors, Check!
  732. ;     ■ Search for : SENDMODEM, MPRINT, MPRINTLN
  733. ;
  734. ;------------------------------------------------------------------------------
  735. ;
  736. ; Postprocessing report
  737. ;
  738. ;    16      For/Next
  739. ;    0       While/EndWhile
  740. ;    62      If/Then or If/Then/Else
  741. ;    1       Select Case
  742. ;
  743. ;------------------------------------------------------------------------------
  744. ;                 AEGiS Corp - Break the routines, code against the machines!
  745. ;------------------------------------------------------------------------------
  746.