home *** CD-ROM | disk | FTP | other *** search
/ CD Shareware Magazine 1997 January / CD_shareware_1-97.iso / DOS / COMUNICA / BPC-APP.ZIP / APP.PPE (.txt) next >
Encoding:
PCBoard Programming Language Executable  |  1995-04-13  |  7.2 KB  |  515 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.     Integer  INTEGER001
  20.     Integer  TINTEGER002(999)
  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.     String   STRING001
  30.     String   STRING002
  31.     String   TSTRING003(999)
  32.     String   TSTRING004(999)
  33.     String   STRING005
  34.     String   TSTRING006(999)
  35.     String   STRING007
  36.     String   STRING008
  37.     String   STRING009
  38.     String   STRING010
  39.     String   STRING011
  40.     String   STRING012
  41.     String   STRING013
  42.     String   STRING014
  43.     String   STRING015
  44.     String   STRING016
  45.     String   STRING017
  46.     String   STRING018
  47.     String   STRING019
  48.     String   STRING020
  49.  
  50. ;------------------------------------------------------------------------------
  51.  
  52.     STRING014 = "@X0F·@X08───@X07───@X0F───────@X07───@X08───@X0F·@X08─@X07──@X0F──@X07──@X08────@X0F·@X08─@X07──@X0F──@X07──@X08─@X0F·@X08─────@X0F·@X08──@X0F·@X08──────@X0F···"
  53.     STRING015 = "@X08└@X0F·@X08──── @X09(c)@X0D @X091995@X0D @X09by@X0D @X09Master@X0D @X09Death@X0D @X09... @X08──@X07──@X0F──@X07──@X0F──@X07──@X08────@X0F··"
  54.     STRING007 = "@X08 sa@X05VE @X08t@X05HIS @X08n@X05OW!! "
  55.     STRING008 = "@X08 l@X05ET @X08m@X05E @X08co@X05NTINUE!! "
  56.     STRING009 = "@X08 g@X05ET @X08m@X05E @X08ou@X05TTA @X08he@X05RE!!! "
  57.     STRING010 = "@X75 @X78sa@X75VE @X78t@X75HIS @X78n@X75OW!! "
  58.     STRING011 = "@X75 @X78l@X75ET @X78m@X75E @X78co@X75NTINUE!! "
  59.     STRING012 = "@X75 @X78g@X75ET @X78m@X75E @X78ou@X75TTA @X78he@X75RE!!! "
  60.     Cls
  61.     STRING001 = "@X0F·                                                ·"
  62.     STRING002 = "@X08[················································]"
  63.     For INTEGER001 = 1 To 999
  64.         TSTRING003(INTEGER001) = ReadLine(PPEPath() + "app.quz", INTEGER001)
  65.         If (Len(TSTRING003(INTEGER001)) < 1) Then
  66.             Break
  67.         Endif
  68.         If (Len(TSTRING003(INTEGER001)) > 48) Then
  69.             TSTRING003(INTEGER001) = Left(TSTRING003(INTEGER001), 48)
  70.         Endif
  71.     Next
  72.     INTEGER004 = INTEGER001
  73.     If (INTEGER004 == 1) Then
  74.         Cls
  75.         End
  76.     Endif
  77.     DispFile PPEPath() + "gfx", 1 + 4 + 2
  78.     INTEGER003 = 1
  79.     Gosub LABEL002
  80.     INTEGER001 = 9
  81.     AnsiPos 5, INTEGER001
  82.     Color 24
  83.     Print "················································"
  84.     INTEGER003 = 1
  85.     INTEGER005 = 5
  86.     TINTEGER002(INTEGER003) = INTEGER005
  87.     AnsiPos INTEGER005, INTEGER001
  88.     Print ""
  89.     Goto LABEL003
  90.     :LABEL001
  91.     AnsiPos 5, INTEGER001
  92.     Color 24
  93.     Print "················································"
  94.     AnsiPos 5, INTEGER001
  95.     Color 31
  96.     Print TSTRING004(INTEGER003)
  97.     Return
  98.     :LABEL002
  99.     For INTEGER001 = 8 To 18
  100.         If (INTEGER003 == INTEGER004) Then
  101.             Return
  102.         Endif
  103.         AnsiPos 4, INTEGER001
  104.         Print STRING001
  105.         AnsiPos 5, INTEGER001
  106.         Color 15
  107.         Print TSTRING003(INTEGER003)
  108.         INTEGER001 = INTEGER001 + 1
  109.         AnsiPos 4, INTEGER001
  110.         Print STRING002
  111.         If (Len(TSTRING004(INTEGER003)) > 1) Then
  112.             AnsiPos 5, INTEGER001
  113.             Color 13
  114.             Print TSTRING004(INTEGER003)
  115.         Endif
  116.         INTEGER003 = INTEGER003 + 1
  117.     Next
  118.     Return
  119.     :LABEL003
  120.     STRING005 = Inkey()
  121.     If (STRING005 == "UP") Then
  122.         Goto LABEL004
  123.     Endif
  124.     If (STRING005 == "DOWN") Then
  125.         Goto LABEL005
  126.     Endif
  127.     If (STRING005 == Chr(8)) Then
  128.         Goto LABEL008
  129.     Endif
  130.     If (STRING005 == Chr(9)) Then
  131.         Goto LABEL003
  132.     Endif
  133.     If (STRING005 == Chr(27)) Then
  134.         STRING013 = ScrText(1, 21, 100, 1)
  135.     Else
  136.         If (STRING005 == Chr(13)) Then
  137.             Goto LABEL005
  138.         Endif
  139.         If (STRING005 <> "") Then
  140.             Goto LABEL007
  141.         Endif
  142.         Goto LABEL003
  143.         :LABEL004
  144.         If (INTEGER003 == 1) Then
  145.             Goto LABEL003
  146.         Endif
  147.         If ((INTEGER001 == 9) && (INTEGER004 > 6)) Then
  148.             INTEGER003 = INTEGER003 - 6
  149.             Gosub LABEL006
  150.             Gosub LABEL002
  151.             INTEGER001 = 19
  152.             INTEGER003 = INTEGER003 - 1
  153.             Gosub LABEL001
  154.             INTEGER005 = TINTEGER002(INTEGER003)
  155.             If (INTEGER005 < 5) Then
  156.                 INTEGER005 = 5
  157.                 TINTEGER002(INTEGER003) = INTEGER005
  158.             Endif
  159.             AnsiPos INTEGER005, INTEGER001
  160.             Print ""
  161.             Goto LABEL003
  162.         Endif
  163.         AnsiPos 5, INTEGER001
  164.         Color 8
  165.         Print "················································"
  166.         AnsiPos 5, INTEGER001
  167.         Color 13
  168.         Print TSTRING004(INTEGER003)
  169.         INTEGER001 = INTEGER001 - 2
  170.         INTEGER003 = INTEGER003 - 1
  171.         Gosub LABEL001
  172.         INTEGER005 = TINTEGER002(INTEGER003)
  173.         If (INTEGER005 < 5) Then
  174.             INTEGER005 = 5
  175.             TINTEGER002(INTEGER003) = INTEGER005
  176.         Endif
  177.         AnsiPos INTEGER005, INTEGER001
  178.         Print ""
  179.         Goto LABEL003
  180.         :LABEL005
  181.         If (INTEGER003 == INTEGER004 - 1) Then
  182.             Goto LABEL003
  183.         Endif
  184.         If ((INTEGER001 == 19) && (INTEGER004 > 6)) Then
  185.             INTEGER003 = INTEGER003 + 1
  186.             INTEGER008 = INTEGER003
  187.             Gosub LABEL006
  188.             Gosub LABEL002
  189.             INTEGER003 = INTEGER008
  190.             INTEGER001 = 9
  191.             Gosub LABEL001
  192.             INTEGER005 = TINTEGER002(INTEGER003)
  193.             If (INTEGER005 < 5) Then
  194.                 INTEGER005 = 5
  195.                 TINTEGER002(INTEGER003) = 5
  196.             Endif
  197.             AnsiPos INTEGER005, INTEGER001
  198.             Print ""
  199.             Goto LABEL003
  200.         Endif
  201.         AnsiPos 5, INTEGER001
  202.         Color 8
  203.         Print "················································"
  204.         AnsiPos 5, INTEGER001
  205.         Color 13
  206.         Print TSTRING004(INTEGER003)
  207.         INTEGER001 = INTEGER001 + 2
  208.         INTEGER003 = INTEGER003 + 1
  209.         Gosub LABEL001
  210.         INTEGER005 = TINTEGER002(INTEGER003)
  211.         If (INTEGER005 < 5) Then
  212.             INTEGER005 = 5
  213.             TINTEGER002(INTEGER003) = INTEGER005
  214.         Endif
  215.         AnsiPos INTEGER005, INTEGER001
  216.         Print ""
  217.         Goto LABEL003
  218.         :LABEL006
  219.         For INTEGER001 = 8 To 19
  220.             AnsiPos 4, INTEGER001
  221.             Color 8
  222.             Print "                                                  "
  223.         Next
  224.         Return
  225.         :LABEL007
  226.         If (Len(STRING005) > 1) Then
  227.             Goto LABEL003
  228.         Endif
  229.         If (INTEGER005 > 52) Then
  230.             Goto LABEL003
  231.         Endif
  232.         Color 31
  233.         AnsiPos INTEGER005, INTEGER001
  234.         Print STRING005
  235.         INTEGER005 = GetX()
  236.         TSTRING004(INTEGER003) = TSTRING004(INTEGER003) + STRING005
  237.         STRING005 = ""
  238.         TINTEGER002(INTEGER003) = INTEGER005
  239.         Goto LABEL003
  240.         :LABEL008
  241.         If (INTEGER005 < 6) Then
  242.             STRING005 = ""
  243.             Goto LABEL003
  244.         Endif
  245.         AnsiPos TINTEGER002(INTEGER003), INTEGER001
  246.         Color 24
  247.         Print Chr(8) + "·"
  248.         INTEGER005 = GetX()
  249.         INTEGER005 = INTEGER005 - 1
  250.         AnsiPos INTEGER005, INTEGER001
  251.         Print ""
  252.         TSTRING004(INTEGER003) = Left(TSTRING004(INTEGER003), Len(TSTRING004(INTEGER003)) - 1)
  253.         STRING005 = ""
  254.         TINTEGER002(INTEGER003) = INTEGER005
  255.         Goto LABEL003
  256.     Endif
  257.     INTEGER006 = 2
  258.     Color 8
  259.     AnsiPos 8, 21
  260.     Print "                                                                "
  261.     AnsiPos 9, 21
  262.     Print STRING007
  263.     AnsiPos 29, 21
  264.     Print STRING011
  265.     AnsiPos 50, 21
  266.     Print STRING009
  267.     AnsiPos 29, 21
  268.     Color 119
  269.     Print "█"
  270.     AnsiPos 29, 21
  271.     Print ""
  272.     :LABEL009
  273.     STRING005 = Inkey()
  274.     If (STRING005 == "LEFT") Then
  275.         Goto LABEL010
  276.     Endif
  277.     If (STRING005 == "RIGHT") Then
  278.         Goto LABEL011
  279.     Endif
  280.     If (STRING005 == Chr(13)) Then
  281.         Goto LABEL012
  282.     Endif
  283.     Goto LABEL009
  284.     :LABEL010
  285.     If (INTEGER006 == 1) Then
  286.         AnsiPos 9, 21
  287.         Color 8
  288.         Print STRING007
  289.         INTEGER006 = 3
  290.         AnsiPos 50, 21
  291.         Print STRING012
  292.         AnsiPos 50, 21
  293.         Color 119
  294.         Print "█"
  295.         AnsiPos 50, 21
  296.         Print ""
  297.         Goto LABEL009
  298.     Endif
  299.     If (INTEGER006 == 2) Then
  300.         AnsiPos 29, 21
  301.         Color 8
  302.         Print STRING008
  303.         INTEGER006 = 1
  304.         AnsiPos 9, 21
  305.         Print STRING010
  306.         AnsiPos 9, 21
  307.         Color 119
  308.         Print "█"
  309.         AnsiPos 9, 21
  310.         Print ""
  311.         Goto LABEL009
  312.     Endif
  313.     If (INTEGER006 == 3) Then
  314.         AnsiPos 50, 21
  315.         Color 8
  316.         Print STRING009
  317.         INTEGER006 = 2
  318.         AnsiPos 29, 21
  319.         Print STRING011
  320.         AnsiPos 29, 21
  321.         Color 119
  322.         Print "█"
  323.         AnsiPos 29, 21
  324.         Print ""
  325.         Goto LABEL009
  326.     Endif
  327.     :LABEL011
  328.     If (INTEGER006 == 1) Then
  329.         AnsiPos 9, 21
  330.         Color 8
  331.         Print STRING007
  332.         INTEGER006 = 2
  333.         AnsiPos 29, 21
  334.         Print STRING011
  335.         AnsiPos 29, 21
  336.         Color 119
  337.         Print "█"
  338.         AnsiPos 29, 21
  339.         Print ""
  340.         Goto LABEL009
  341.     Endif
  342.     If (INTEGER006 == 2) Then
  343.         AnsiPos 29, 21
  344.         Color 8
  345.         Print STRING008
  346.         INTEGER006 = 3
  347.         AnsiPos 50, 21
  348.         Print STRING012
  349.         AnsiPos 50, 21
  350.         Color 119
  351.         Print "█"
  352.         AnsiPos 50, 21
  353.         Print ""
  354.         Goto LABEL009
  355.     Endif
  356.     If (INTEGER006 == 3) Then
  357.         AnsiPos 50, 21
  358.         Color 8
  359.         Print STRING009
  360.         INTEGER006 = 1
  361.         AnsiPos 9, 21
  362.         Print STRING010
  363.         AnsiPos 9, 21
  364.         Color 119
  365.         Print "█"
  366.         AnsiPos 9, 21
  367.         Print ""
  368.         Goto LABEL009
  369.     Endif
  370.     :LABEL012
  371.     Select Case (INTEGER006)
  372.         Case 1
  373.             AnsiPos 8, 21
  374.             Color 8
  375.             Print "                                                                "
  376.             If (INTEGER006 == 2) Then
  377.                 AnsiPos 1, 21
  378.                 Print STRING013
  379.                 AnsiPos INTEGER005, INTEGER001
  380.                 Print ""
  381.                 Goto LABEL003
  382.             Endif
  383.         Case 3
  384.             Color 8
  385.             Cls
  386.             Goto LABEL013
  387.     End Select
  388.     GetUser
  389.     STRING016 = U_Name()
  390.     STRING017 = Time()
  391.     STRING018 = Date()
  392.     FAppend 1, PPEPath() + "register", 2, 0
  393.     FPutLn 1, "= HANDLE [" + STRING016 + "] ... DATE [" + STRING018 + "] TIME [" + STRING017 + "] ... ="
  394.     FPutLn 1, ""
  395.     For INTEGER007 = 1 To INTEGER004
  396.         FPutLn 1, "■ Quiz   - " + TSTRING003(INTEGER007)
  397.         FPutLn 1, "■ Answer - " + TSTRING006(INTEGER007)
  398.     Next
  399.     AnsiPos 9, 21
  400.     Print "@X08sa@X05VING ... @X08pl@X05EASE @X08wa@X05IT @X08a mo@X05MENT @X08[·····························]"
  401.     For INTEGER001 = 42 To 70
  402.         AnsiPos INTEGER001, 21
  403.         Color 15
  404.         Print "■"
  405.         Delay 1
  406.     Next
  407.     FPutLn 1, ""
  408.     FPutLn 1, "···············································································"
  409.     FPutLn 1, ""
  410.     FClose 1
  411.     Color 8
  412.     Cls
  413.     :LABEL013
  414.     STRING019 = "=(c) 1995 by MASTER DEATH/BPC ...="
  415.     INTEGER009 = Len(STRING019)
  416.     INTEGER010 = 1
  417.     :LABEL014
  418.     If (INTEGER010 == INTEGER009 + 1) Then
  419.         AnsiPos 1, 1
  420.         Print STRING014
  421.         AnsiPos 1, 2
  422.         PrintLn STRING015
  423.         PrintLn ""
  424.         End
  425.     Endif
  426.     STRING020 = Left(STRING019, INTEGER010)
  427.     STRING020 = Right(STRING020, 1)
  428.     AnsiPos INTEGER010, 1
  429.     Color 8
  430.     Print STRING020
  431.     Delay 1
  432.     AnsiPos INTEGER010, 1
  433.     Color 7
  434.     Print STRING020
  435.     Delay 1
  436.     Color 15
  437.     AnsiPos INTEGER010, 1
  438.     Print STRING020
  439.     Delay 1
  440.     Color 9
  441.     AnsiPos INTEGER010, 1
  442.     Print STRING020
  443.     Delay 1
  444.     INTEGER010 = INTEGER010 + 1
  445.     Goto LABEL014
  446.     End
  447.  
  448. ;------------------------------------------------------------------------------
  449. ;
  450. ; Usage report (before postprocessing)
  451. ;
  452. ; ■ Statements used :
  453. ;
  454. ;    3       End
  455. ;    4       Cls
  456. ;    34      Color 
  457. ;    81      Goto 
  458. ;    82      Let 
  459. ;    60      Print 
  460. ;    2       PrintLn 
  461. ;    41      If 
  462. ;    1       DispFile 
  463. ;    1       FAppend 
  464. ;    1       FClose 
  465. ;    7       FPutLn 
  466. ;    1       GetUser
  467. ;    9       Gosub 
  468. ;    4       Return
  469. ;    5       Delay 
  470. ;    61      AnsiPos 
  471. ;
  472. ;
  473. ; ■ Functions used :
  474. ;
  475. ;    27      +
  476. ;    7       -
  477. ;    25      ==
  478. ;    1       <>
  479. ;    11      <
  480. ;    5       <=
  481. ;    6       >
  482. ;    10      >=
  483. ;    41      !
  484. ;    12      &&
  485. ;    5       ||
  486. ;    6       Len(
  487. ;    3       Left()
  488. ;    1       Right()
  489. ;    6       Chr()
  490. ;    1       Date()
  491. ;    1       Time()
  492. ;    1       U_Name()
  493. ;    2       Inkey()
  494. ;    3       PPEPath()
  495. ;    1       ReadLine()
  496. ;    2       GetX()
  497. ;    1       ScrText()
  498. ;
  499. ;------------------------------------------------------------------------------
  500. ;
  501. ; Analysis flags : No flag
  502. ;
  503. ;------------------------------------------------------------------------------
  504. ;
  505. ; Postprocessing report
  506. ;
  507. ;    5       For/Next
  508. ;    0       While/EndWhile
  509. ;    34      If/Then or If/Then/Else
  510. ;    1       Select Case
  511. ;
  512. ;------------------------------------------------------------------------------
  513. ;                 AEGiS Corp - Break the routines, code against the machines!
  514. ;------------------------------------------------------------------------------
  515.