home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / S / SB-WALL1.ZIP / SP-WALL.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-04-21  |  10KB  |  454 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  INTEGER001
  20.     Integer  INTEGER002
  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.     String   STRING001
  33.     String   STRING002
  34.     String   STRING003
  35.     String   STRING004
  36.     String   STRING005
  37.     String   STRING006
  38.     String   STRING007
  39.     String   STRING008
  40.     String   STRING009
  41.     String   STRING010
  42.     String   STRING011
  43.     String   STRING012
  44.     String   STRING013
  45.     String   STRING014
  46.     String   STRING015
  47.     String   STRING016
  48.     String   STRING017
  49.  
  50. ;------------------------------------------------------------------------------
  51.  
  52.     Print "@X07"
  53.     Cls
  54.     Print "@POFF@"
  55.     STRING017 = GetToken()
  56.     STRING014 = "                                                                                "
  57.     INTEGER012 = 1
  58.     INTEGER013 = 0
  59.     STRING006 = UN_City()
  60.     INTEGER003 = 1
  61.     INTEGER004 = 1
  62.     INTEGER009 = 1
  63.     INTEGER008 = 0
  64.     If (Exist(PPEPath() + "SP-USER.DAT")) INTEGER008 = 1
  65.     If (INTEGER008 == 0) Then
  66.         FCreate 1, PPEPath() + "SP-USER.DAT", 1, 0
  67.         For INTEGER001 = 1 To 16
  68.             FPutLn 1, ""
  69.         Next
  70.         FClose 1
  71.     Endif
  72.     INTEGER008 = 0
  73.     If (Exist(PPEPath() + "SP-WALL.DAT")) INTEGER008 = 1
  74.     If (INTEGER008 == 0) Then
  75.         FCreate 1, PPEPath() + "SP-WALL.DAT", 1, 0
  76.         For INTEGER001 = 1 To 16
  77.             FPutLn 1, ""
  78.         Next
  79.         FClose 1
  80.     Endif
  81.     INTEGER008 = 0
  82.     If (Exist(PPEPath() + "SP-LOG.DAT")) INTEGER008 = 1
  83.     If (INTEGER008 == 0) Gosub LABEL013
  84.     Cls
  85.     AnsiPos 1, 2
  86.     Print "@X0F                  ┌@X07─@X08»@X0F S P E L L B O U N D  @X07O N E L i N E R @X08«@X07─@X0F┐"
  87.     AnsiPos 2, 3
  88.     Print "@X0F─@X07───@X08─@X07──@X08─@X07─@X08──────@X07──@X0F┴@X07──@X08─@X07─@X08─@X07──@X08─@X07────@X0F──@X07─@X0F─@X07─@X0F────────@X07─@X0F─@X07─@X0F──@X07────@X08─@X07──@X08─@X07─@X08─@X07──@X0F┴@X07──@X08──────@X07─@X08─@X07──@X08─@X07───@X0F─"
  89.     AnsiPos 2, 20
  90.     PrintLn "@X0F─@X07───@X08─@X07──@X08─@X07─@X08──────@X07─────@X08─@X07─@X08─@X07──@X08─@X07────@X0F──@X07─@X0F─@X07─@X0F────────@X07─@X0F─@X07─@X0F──@X07────@X08─@X07──@X08─@X07─@X08─@X07─────@X08──────@X07─@X08─@X07──@X08─@X07───@X0F─"
  91.     PrintLn "@X08   baCK tO bBs     a@X08DD a oNELiNEr     wHo wRiTTEn tHiS sHiT     LiST oNELiNEr  "
  92.     PrintLn " @X0F─@X07───@X08─@X07──@X08─@X07─@X08──────@X07─────@X08─@X07─@X08─@X07──@X08─@X07────@X0F──@X07─@X0F─@X07─@X0F────────@X07─@X0F─@X07─@X0F──@X07────@X08─@X07──@X08─@X07─@X08─@X07─────@X08──────@X07─@X08─@X07──@X08─@X07───@X0F─"
  93.     INTEGER013 = 1
  94.     If (STRING017 == "NO") Goto LABEL001
  95.     INTEGER002 = 23
  96.     AnsiPos INTEGER002 - 1, 2
  97.     Print "@X0F                                      "
  98.     AnsiPos INTEGER002, 2
  99.     Print Chr(83) + " " + Chr(80) + " " + Chr(69) + " " + Chr(76) + " " + Chr(76) + " " + Chr(66) + " " + Chr(79) + " " + Chr(85) + " " + Chr(78) + " " + Chr(68) + "  " + Chr(79) + " " + Chr(78) + " " + Chr(69) + " " + Chr(76) + " " + Chr(105) + " " + Chr(78) + " " + Chr(69) + " " + Chr(82)
  100.     :LABEL001
  101.     STRING007 = ""
  102.     STRING001 = ""
  103.     Gosub LABEL011
  104.     INTEGER003 = 1
  105.     INTEGER004 = 1
  106.     :LABEL002
  107.     AnsiPos 2, 21
  108.     If (INTEGER013 == 0) Print "@X08  baCK tO bBs     a@X08DD a oNELiNEr     wHo wRiTTEn tHiS sHiT     LiST oNELiNEr  "
  109.     INTEGER013 = 0
  110.     Gosub LABEL010
  111.     :LABEL003
  112.     STRING004 = ""
  113.     STRING003 = ""
  114.     If (INTEGER003 == 3) AnsiPos 61, 21
  115.     If (INTEGER003 == 4) AnsiPos 79, 21
  116.     While (STRING003 == 0) Do
  117.         STRING002 = Asc(Inkey())
  118.         If (STRING002 == 13) STRING003 = 1
  119.         If (STRING002 == 27) Then
  120.             STRING003 = 1
  121.             INTEGER003 = 0
  122.         Endif
  123.         If (STRING002 == 82) Gosub LABEL008
  124.         If (STRING002 == 9) Gosub LABEL008
  125.         If (STRING002 == 54) Gosub LABEL008
  126.         If (STRING002 == 32) Gosub LABEL008
  127.         If (STRING002 == 76) Gosub LABEL009
  128.         If (STRING002 == 83) Gosub LABEL009
  129.         If (STRING002 == 52) Gosub LABEL009
  130.     EndWhile
  131.     If (INTEGER003 == 0) Then
  132.         Print "@X07"
  133.         Cls
  134.         End
  135.     Endif
  136.     If (INTEGER003 == 1) Then
  137.         AnsiPos 1, 1
  138.         Print "@PON@"
  139.         Cls
  140.         End
  141.     Endif
  142.     If (INTEGER003 == 2) Goto LABEL004
  143.     If (INTEGER003 == 3) Then
  144.         If (INTEGER009 == 1) Then
  145.             INTEGER009 = 2
  146.             Gosub LABEL011
  147.             Goto LABEL003
  148.         Endif
  149.     Endif
  150.     If (INTEGER003 == 4) Then
  151.         If (INTEGER009 == 2) Then
  152.             INTEGER009 = 1
  153.             Gosub LABEL011
  154.             Goto LABEL003
  155.         Endif
  156.     Endif
  157.     Goto LABEL003
  158.     :LABEL004
  159.     STRING004 = ""
  160.     STRING001 = ""
  161.     STRING007 = ""
  162.     AnsiPos 2, 21
  163.     Print "@X0F[                                                                            ]"
  164.     AnsiPos 3, 21
  165.     InputText "_", STRING004, 15, 76
  166.     If (STRING004 == "") Goto LABEL002
  167.     INTEGER011 = Len(STRING004)
  168.     STRING010 = ""
  169.     For INTEGER001 = 1 To INTEGER011
  170.         STRING005 = Mid(STRING004, INTEGER001, 1)
  171.         If (STRING005 <> "@") STRING010 = STRING010 + STRING005
  172.     Next
  173.     STRING004 = STRING010
  174.     INTEGER005 = 10
  175.     INTEGER006 = 10
  176.     STRING008 = ""
  177.     STRING009 = ""
  178.     STRING003 = ""
  179.     AnsiPos 2, 21
  180.     Print "   @X08[@X07S@X0FeLeCT @X07T@X0FeXT @X07C@X0FoLoR@X08] @X0F ■ @X07 ■ @X08 ■ @X02 ■ @X0A ■ @X06 ■ @X0E ■ @X01 ■ @X09 ■ @X03 ■ @X0B ■ @X05 ■ @X0D ■ @X04 ■ @X0C ■ @X08 a@X07B@X0Fo@X07R@X08T    "
  181.     Gosub LABEL012
  182.     While (STRING003 == 0) Do
  183.         STRING002 = Asc(Inkey())
  184.         If (STRING002 == 13) STRING003 = 1
  185.         If (STRING002 == 27) Then
  186.             STRING003 = 1
  187.             INTEGER005 = 16
  188.         Endif
  189.         If (STRING002 == 82) Gosub LABEL005
  190.         If (STRING002 == 9) Gosub LABEL005
  191.         If (STRING002 == 54) Gosub LABEL005
  192.         If (STRING002 == 32) Gosub LABEL005
  193.         If (STRING002 == 76) Gosub LABEL006
  194.         If (STRING002 == 83) Gosub LABEL006
  195.         If (STRING002 == 52) Gosub LABEL006
  196.     EndWhile
  197.     If (INTEGER005 == 1) STRING009 = "@X0F"
  198.     If (INTEGER005 == 2) STRING009 = "@X07"
  199.     If (INTEGER005 == 3) STRING009 = "@X08"
  200.     If (INTEGER005 == 4) STRING009 = "@X02"
  201.     If (INTEGER005 == 5) STRING009 = "@X0A"
  202.     If (INTEGER005 == 6) STRING009 = "@X06"
  203.     If (INTEGER005 == 7) STRING009 = "@X0E"
  204.     If (INTEGER005 == 8) STRING009 = "@X01"
  205.     If (INTEGER005 == 9) STRING009 = "@X09"
  206.     If (INTEGER005 == 10) STRING009 = "@X03"
  207.     If (INTEGER005 == 11) STRING009 = "@X0B"
  208.     If (INTEGER005 == 12) STRING009 = "@X05"
  209.     If (INTEGER005 == 13) STRING009 = "@X0D"
  210.     If (INTEGER005 == 14) STRING009 = "@X04"
  211.     If (INTEGER005 == 15) STRING009 = "@X0C"
  212.     If (INTEGER005 == 16) Goto LABEL002
  213.     STRING001 = STRING009 + STRING004
  214.     STRING007 = U_Name()
  215.     STRING011 = Date()
  216.     STRING012 = Time()
  217.     Goto LABEL007
  218.     :LABEL005
  219.     INTEGER005 = INTEGER005 + 1
  220.     If (INTEGER005 > 16) INTEGER005 = 1
  221.     Gosub LABEL012
  222.     Return
  223.     :LABEL006
  224.     INTEGER005 = INTEGER005 - 1
  225.     If (INTEGER005 < 1) INTEGER005 = 16
  226.     Gosub LABEL012
  227.     Return
  228.     :LABEL007
  229.     FCreate 1, PPEPath() + "SP-TEMP.DAT", 1, 0
  230.     FOpen 2, PPEPath() + "SP-LOG.DAT", 0, 0
  231.     STRING013 = ""
  232.     STRING003 = ""
  233.     While (STRING003 == 0) Do
  234.         FGet 2, STRING013
  235.         If (STRING013 <> "") FPutLn 1, STRING013
  236.         If (STRING013 == "") STRING003 = 1
  237.     EndWhile
  238.     FPutLn 1, "  " + STRING007 + " - " + STRING006 + " - " + STRING011 + " - " + STRING012
  239.     FPutLn 1, "  ", STRING004
  240.     FPutLn 1, " ──────────────────────────────────────────────────────────────────────────────"
  241.     FClose 1
  242.     FClose 2
  243.     Delete PPEPath() + "SP-LOG.DAT"
  244.     Rename PPEPath() + "SP-TEMP.DAT", PPEPath() + "SP-LOG.DAT"
  245.     INTEGER001 = Len(STRING001)
  246.     INTEGER002 = (81 - INTEGER001) / 2
  247.     STRING015 = Mid(STRING014, 1, INTEGER002)
  248.     STRING016 = STRING015 + STRING001 + STRING015
  249.     STRING001 = Mid(STRING016, 1, 80)
  250.     FCreate 1, PPEPath() + "SP-TEMP.DAT", 1, 0
  251.     FOpen 2, PPEPath() + "SP-WALL.DAT", 0, 0
  252.     FGet 2, STRING013
  253.     For INTEGER002 = 1 To 15
  254.         FGet 2, STRING013
  255.         FPutLn 1, STRING013
  256.     Next
  257.     FPutLn 1, STRING001
  258.     FClose 1
  259.     FClose 2
  260.     Delete PPEPath() + "SP-WALL.DAT"
  261.     Rename PPEPath() + "SP-TEMP.DAT", PPEPath() + "SP-WALL.DAT"
  262.     STRING001 = STRING009 + "·∙■ " + STRING007 + " - " + STRING006 + " - " + STRING011 + " - " + STRING012 + " ■∙·"
  263.     INTEGER001 = Len(STRING001)
  264.     INTEGER002 = (81 - INTEGER001) / 2
  265.     STRING015 = Mid(STRING014, 1, INTEGER002)
  266.     STRING016 = STRING015 + STRING001 + STRING015
  267.     STRING001 = Mid(STRING016, 1, 80)
  268.     FCreate 1, PPEPath() + "SP-TEMP.DAT", 1, 0
  269.     FOpen 2, PPEPath() + "SP-USER.DAT", 0, 0
  270.     FGet 2, STRING013
  271.     For INTEGER002 = 1 To 15
  272.         FGet 2, STRING013
  273.         FPutLn 1, STRING013
  274.     Next
  275.     FPutLn 1, STRING001
  276.     FClose 1
  277.     FClose 2
  278.     Delete PPEPath() + "SP-USER.DAT"
  279.     Rename PPEPath() + "SP-TEMP.DAT", PPEPath() + "SP-USER.DAT"
  280.     AnsiPos 2, 21
  281.     Print "@X08  baCK tO bBs     a@X08DD a oNELiNEr     wHo wRiTTEn tHiS sHiT     LiST oNELiNEr  "
  282.     INTEGER013 = 1
  283.     Goto LABEL001
  284.     :LABEL008
  285.     INTEGER003 = INTEGER003 + 1
  286.     If (INTEGER003 > 4) INTEGER003 = 1
  287.     Gosub LABEL010
  288.     Return
  289.     :LABEL009
  290.     INTEGER003 = INTEGER003 - 1
  291.     If (INTEGER003 < 1) INTEGER003 = 4
  292.     Gosub LABEL010
  293.     Return
  294.     :LABEL010
  295.     If (INTEGER004 == 1) Then
  296.         AnsiPos 3, 21
  297.         Print "@X08 baCK tO bBs @X07"
  298.     Endif
  299.     If (INTEGER004 == 2) Then
  300.         AnsiPos 19, 21
  301.         Print "@X08 aDD a oNELiNEr @X07"
  302.     Endif
  303.     If (INTEGER004 == 3) Then
  304.         AnsiPos 38, 21
  305.         Print "@X08 wHo wRiTTEn tHiS sHiT @X07"
  306.     Endif
  307.     If (INTEGER004 == 4) Then
  308.         AnsiPos 64, 21
  309.         Print "@X08 LiST oNELiNEr @X07"
  310.     Endif
  311.     If (INTEGER003 == 1) Then
  312.         AnsiPos 3, 21
  313.         Print "@X1F BACK TO BBS @X07"
  314.     Endif
  315.     If (INTEGER003 == 2) Then
  316.         AnsiPos 19, 21
  317.         Print "@X1F ADD A ONELINER @X07"
  318.     Endif
  319.     If (INTEGER003 == 3) Then
  320.         AnsiPos 38, 21
  321.         Print "@X1F WHO WRITTEN THIS SHIT @X07"
  322.     Endif
  323.     If (INTEGER003 == 4) Then
  324.         AnsiPos 64, 21
  325.         Print "@X1F LIST ONELINER @X07"
  326.     Endif
  327.     INTEGER004 = INTEGER003
  328.     Return
  329.     :LABEL011
  330.     Print "@X07"
  331.     AnsiPos 1, 4
  332.     If (INTEGER009 == 1) FOpen 1, PPEPath() + "SP-WALL.DAT", 0, 0
  333.     If (INTEGER009 == 2) FOpen 1, PPEPath() + "SP-USER.DAT", 0, 0
  334.     For INTEGER002 = 1 To 16
  335.         FGet 1, STRING013
  336.         PrintLn "  " + STRING013
  337.     Next
  338.     FClose 1
  339.     Return
  340.     :LABEL012
  341.     If (INTEGER006 == 16) Then
  342.         AnsiPos 70, 21
  343.         Print "@X07 "
  344.         AnsiPos 76, 21
  345.         Print "@X07 "
  346.     Else
  347.         INTEGER010 = 22
  348.         INTEGER007 = INTEGER010 + INTEGER006 + INTEGER006 * 2
  349.         AnsiPos INTEGER007, 21
  350.         Print "@X07 "
  351.         AnsiPos INTEGER007 + 2, 21
  352.         Print "@X07 "
  353.         AnsiPos INTEGER007 + 1, 21
  354.     Endif
  355.     If (INTEGER005 == 16) Then
  356.         AnsiPos 70, 21
  357.         Print "@X8F"
  358.         AnsiPos 70, 21
  359.         Print "["
  360.         AnsiPos 76, 21
  361.         Print "]"
  362.         AnsiPos 73, 21
  363.         INTEGER006 = INTEGER005
  364.         Return
  365.     Endif
  366.     INTEGER007 = INTEGER010 + INTEGER005 + INTEGER005 * 2
  367.     AnsiPos INTEGER007, 21
  368.     Print "@X8F"
  369.     AnsiPos INTEGER007, 21
  370.     Print "["
  371.     AnsiPos INTEGER007 + 2, 21
  372.     Print "]"
  373.     AnsiPos INTEGER007 + 1, 21
  374.     INTEGER006 = INTEGER005
  375.     Return
  376.     :LABEL013
  377.     FCreate 1, PPEPath() + "SP-LOG.DAT", 1, 0
  378.     FPutLn 1, " ·····--------───────────═════════════════════════════───────────---------·····"
  379.     FPutLn 1, "            S P E L L B O U N D   O N E L i N E R   L O G   F i L E"
  380.     FPutLn 1, " ·····--------───────────═════════════════════════════───────────---------·····"
  381.     FClose 1
  382.     Return
  383.  
  384. ;------------------------------------------------------------------------------
  385. ;
  386. ; Usage report (before postprocessing)
  387. ;
  388. ; ■ Statements used :
  389. ;
  390. ;    2       End
  391. ;    4       Cls
  392. ;    48      Goto 
  393. ;    106     Let 
  394. ;    31      Print 
  395. ;    4       PrintLn 
  396. ;    80      If 
  397. ;    6       FCreate 
  398. ;    5       FOpen 
  399. ;    10      FClose 
  400. ;    6       FGet 
  401. ;    13      FPutLn 
  402. ;    3       Delete 
  403. ;    24      Gosub 
  404. ;    9       Return
  405. ;    1       InputText 
  406. ;    35      AnsiPos 
  407. ;    3       Rename 
  408. ;
  409. ;
  410. ; ■ Functions used :
  411. ;
  412. ;    2       *
  413. ;    2       /
  414. ;    96      +
  415. ;    5       -
  416. ;    65      ==
  417. ;    2       <>
  418. ;    8       <
  419. ;    6       <=
  420. ;    2       >
  421. ;    12      >=
  422. ;    29      !
  423. ;    12      &&
  424. ;    6       ||
  425. ;    3       Len(
  426. ;    5       Mid()
  427. ;    18      Chr()
  428. ;    2       Asc()
  429. ;    1       Date()
  430. ;    1       Time()
  431. ;    1       U_Name()
  432. ;    2       Inkey()
  433. ;    23      PPEPath()
  434. ;    1       UN_City()
  435. ;    1       GetToken()
  436. ;    3       Exist()
  437. ;
  438. ;------------------------------------------------------------------------------
  439. ;
  440. ; Analysis flags : No flag
  441. ;
  442. ;------------------------------------------------------------------------------
  443. ;
  444. ; Postprocessing report
  445. ;
  446. ;    6       For/Next
  447. ;    3       While/EndWhile
  448. ;    20      If/Then or If/Then/Else
  449. ;    0       Select Case
  450. ;
  451. ;------------------------------------------------------------------------------
  452. ;                 AEGiS Corp - Break the routines, code against the machines!
  453. ;------------------------------------------------------------------------------
  454.