home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / BBS / JM_PD_12.ZIP / PULL.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-01-07  |  10KB  |  563 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  INTEGER002
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     String   STRING001
  24.     String   STRING002
  25.     String   STRING003
  26.     String   STRING004
  27.     String   STRING005
  28.     String   STRING006
  29.     String   STRING007
  30.     String   STRING008
  31.     String   STRING009
  32.     String   STRING010
  33.     String   STRING011
  34.     String   TSTRING012(50)
  35.     String   STRING013
  36.     String   TSTRING014(5,25)
  37.     String   STRING015
  38.     String   STRING016
  39.     String   STRING017
  40.     String   STRING018
  41.     String   STRING019
  42.     String   STRING020
  43.     String   STRING021
  44.     String   STRING022
  45.     String   STRING023
  46.     String   STRING024
  47.     String   STRING025
  48.     String   STRING026
  49.     String   STRING027
  50.     String   STRING028
  51.     String   STRING029
  52.     Declare  Procedure PROC001()
  53.     Declare  Procedure PROC004(Integer INTEGER005)
  54.     Declare  Procedure PROC005()
  55.  
  56. ;------------------------------------------------------------------------------
  57.  
  58.     PROC001()
  59.     End
  60.  
  61. ;------------------------------------------------------------------------------
  62.  
  63.     Procedure PROC001()
  64.  
  65.     WrUNet PcbNode(), "Q", UN_Name(), UN_City(), "PullDown Menu System", " "
  66.     If (Exist(!PPEPath() + PPEName() + ".CNF")) Then
  67.         Lang INTEGER003
  68.         PROC004(1)
  69.     Endif
  70.     INTEGER004 = ReadLine(PPEPath() + PPEName() + ".CNF", 5)
  71.     INTEGER003 = ReadLine(PPEPath() + PPEName() + ".CNF", 5)
  72.     If (GrafMode() == "N") Then
  73.         DispFile PPEPath() + "NOANSI", 2 + 4 + 1
  74.         Lang INTEGER003
  75.         End
  76.     Endif
  77.     If (Carrier() < INTEGER004) Then
  78.         DispFile PPEPath() + "TOOSLOW", 2 + 4 + 1
  79.         Lang INTEGER003
  80.         End
  81.     Endif
  82.     If (Exist(!PPEPath() + "PROMPTS") || Exist(!PPEPath() + "PROMPTS" + LangExt())) Then
  83.         Lang INTEGER003
  84.         PROC004(2)
  85.     Endif
  86.     If (Exist(!PPEPath() + "m1.key")) Then
  87.         Lang INTEGER003
  88.         PROC004(3)
  89.     Endif
  90.     If (Exist(!PPEPath() + "m2.key")) Then
  91.         Lang INTEGER003
  92.         PROC004(4)
  93.     Endif
  94.     If (Exist(!PPEPath() + "m3.key")) Then
  95.         Lang INTEGER003
  96.         PROC004(5)
  97.     Endif
  98.     If (Exist(!PPEPath() + "m4.key")) Then
  99.         Lang INTEGER003
  100.         PROC004(6)
  101.     Endif
  102.     If (Exist(!PPEPath() + "m5.key")) Then
  103.         Lang INTEGER003
  104.         PROC004(7)
  105.     Endif
  106.     If (Exist(!PPEPath() + "m1.men")) Then
  107.         Lang INTEGER003
  108.         PROC004(8)
  109.     Endif
  110.     If (Exist(!PPEPath() + "m2.men")) Then
  111.         Lang INTEGER003
  112.         PROC004(9)
  113.     Endif
  114.     If (Exist(!PPEPath() + "m3.men")) Then
  115.         Lang INTEGER003
  116.         PROC004(10)
  117.     Endif
  118.     If (Exist(!PPEPath() + "m4.men")) Then
  119.         Lang INTEGER003
  120.         PROC004(11)
  121.     Endif
  122.     If (Exist(!PPEPath() + "m5.men")) Then
  123.         Lang INTEGER003
  124.         PROC004(12)
  125.     Endif
  126.     If (Exist(PPEPath() + "INITIAL")) DispFile PPEPath() + "INITIAL", 2 + 4 + 1
  127.     KbdChkOn
  128.     STRING015 = ""
  129.     STRING016 = ""
  130.     STRING017 = ""
  131.     STRING018 = ""
  132.     STRING019 = ""
  133.     STRING020 = ""
  134.     STRING021 = ""
  135.     STRING022 = ""
  136.     STRING023 = ""
  137.     STRING024 = ""
  138.     STRING025 = ""
  139.     STRING026 = ""
  140.     STRING027 = ""
  141.     STRING028 = ""
  142.     STRING029 = ""
  143.     STRING013 = "1.2ß"
  144.     STRING011 = "@X0FPullDown Menu System@X0E v" + STRING013 + "@X09 ■ @X0E(C)opyright 1994-5, Cutting Edge Online"
  145.     For INTEGER001 = 1 To 21
  146.         If (Exist(PPEPath() + "PROMPTS" + LangExt())) Then
  147.             TSTRING012(INTEGER001) = ReadLine(PPEPath() + "PROMPTS" + LangExt(), INTEGER001)
  148.             Continue
  149.         Endif
  150.         If (Exist(PPEPath() + "PROMPTS.")) Then
  151.             TSTRING012(INTEGER001) = ReadLine(PPEPath() + "PROMPTS.", INTEGER001)
  152.             Continue
  153.         Endif
  154.         Log "PullDown Menu System v" + STRING013 + " PROMPTS.[language] file not found!", 0
  155.         TSTRING012(1) = "@X01┌──────────────┬──────────────┬──────────────┬──────────────┬──────────────────@X09┐@X07"
  156.         TSTRING012(2) = "@X01│ @X0FCtrl@X09-@X0E@X0FF@X0Eile    @X01│ @X0FCtrl@X09-@X0EMess@X0FA@X0Ege @X01│ @X0FCtrl@X09-@X0E@X0FD@X0Eoors   @X01│ @X0FCtrl@X09-@X0ES@X0FY@X0Estem  @X01│ @X0FCtrl@X09-@X0FO@X0Eptions     @X09│@X07"
  157.         TSTRING012(3) = "@X01└@X09──────────────┴──────────────┴──────────────┴──────────────┴──────────────────┘@X07"
  158.         TSTRING012(5) = "@X01├@X07"
  159.         TSTRING012(6) = "@X01┼@X07"
  160.         TSTRING012(7) = "@X01──────────────────@X07"
  161.         TSTRING012(8) = "@X09┤@X07"
  162.         TSTRING012(9) = "@X09┬@X07"
  163.         TSTRING012(10) = "@X01└@X09──────────────────┘@X07"
  164.         TSTRING012(11) = "@X01│@X07"
  165.         TSTRING012(12) = "@X0E @OPTEXT@ @X07"
  166.         TSTRING012(13) = "@X09│@X07"
  167.         TSTRING012(14) = "@X01│@X07"
  168.         TSTRING012(15) = "@X1F @OPTEXT@ @X07"
  169.         TSTRING012(16) = "@X09│@X07"
  170.         TSTRING012(17) = "@X0E(@X0F@MINLEFT@@X01@X0E Min Left, @X0F@BYTESLEFT@@X0E Bytes Left)@X07"
  171.         TSTRING012(18) = "@X0E@X0F@INCONF@@X0ECommand? @X07"
  172.         TSTRING012(20) = "@X0F @OPTEXT@ @X07"
  173.         TSTRING012(21) = "@X01──────────────┴───@X07"
  174.     Next
  175.     Color 7
  176.     Cls
  177.     AnsiPos 1, 5
  178.     DispFile PPEPath() + "BACK", 2 + 1 + 4
  179.     PROC005()
  180.     STRING008 = Mask_Ascii()
  181.     STRING008 = STRING008 + " "
  182.     Print "@POFF@"
  183.     AnsiPos 1, 1
  184.     Print STRING011
  185.     AnsiPos 1, 2
  186.     Print TSTRING012(1)
  187.     AnsiPos 1, 3
  188.     Print TSTRING012(2)
  189.     AnsiPos 1, 22
  190.     Print TSTRING012(17)
  191.     AnsiPos 1, 23
  192.     Print TSTRING012(18)
  193.     STRING007 = 5
  194.     STRING001 = 1
  195.     STRING002 = 1
  196.     Gosub LABEL004
  197.     :LABEL001
  198.     AnsiPos 1, 21
  199.     STRING003 = ""
  200.     STRING003 = Inkey()
  201.     While (STRING003 == "") Do
  202.         STRING003 = Inkey()
  203.     EndWhile
  204.     Select Case (STRING003)
  205.         Case STRING020
  206.             STRING001 = 1
  207.             STRING002 = 1
  208.             Gosub LABEL004
  209.             Goto LABEL003
  210.         Case STRING015
  211.             STRING001 = 2
  212.             STRING002 = 16
  213.             Gosub LABEL004
  214.             Goto LABEL003
  215.         Case STRING018
  216.             STRING001 = 3
  217.             STRING002 = 31
  218.             Gosub LABEL004
  219.             Goto LABEL003
  220.         Case STRING029
  221.             STRING001 = 4
  222.             STRING002 = 46
  223.             Gosub LABEL004
  224.             Goto LABEL003
  225.         Case STRING023
  226.             STRING001 = 5
  227.             STRING002 = 61
  228.             Gosub LABEL004
  229.             Goto LABEL003
  230.     End Select
  231.     Select Case (STRING003)
  232.         Case "LEFT"
  233.             Select Case (STRING001)
  234.                 Case 1
  235.                     STRING001 = 5
  236.                     STRING002 = 61
  237.                     Gosub LABEL004
  238.                 Case 2
  239.                     STRING001 = 1
  240.                     STRING002 = 1
  241.                     Gosub LABEL004
  242.                 Case 3
  243.                     STRING001 = 2
  244.                     STRING002 = 16
  245.                     Gosub LABEL004
  246.                 Case 4
  247.                     STRING001 = 3
  248.                     STRING002 = 31
  249.                     Gosub LABEL004
  250.                 Case 5
  251.                     STRING001 = 4
  252.                     STRING002 = 46
  253.                     Gosub LABEL004
  254.             End Select
  255.             If (STRING003 == "RIGHT") Then
  256.                 If (STRING001 == 1) Then
  257.                     STRING001 = 2
  258.                     STRING002 = 16
  259.                     Gosub LABEL004
  260.                     Goto LABEL002
  261.                 Endif
  262.                 If (STRING001 == 2) Then
  263.                     STRING001 = 3
  264.                     STRING002 = 31
  265.                     Gosub LABEL004
  266.                     Goto LABEL002
  267.                 Endif
  268.                 If (STRING001 == 3) Then
  269.                     STRING001 = 4
  270.                     STRING002 = 46
  271.                     Gosub LABEL004
  272.                     Goto LABEL002
  273.                 Endif
  274.                 If (STRING001 == 4) Then
  275.                     STRING001 = 5
  276.                     STRING002 = 61
  277.                     Gosub LABEL004
  278.                     Goto LABEL002
  279.                 Endif
  280.                 If (STRING001 == 5) Then
  281.                     STRING001 = 1
  282.                     STRING002 = 1
  283.                     Gosub LABEL004
  284.                 Endif
  285.                 :LABEL002
  286.                 Goto LABEL001
  287.             Endif
  288.         Case "DOWN"
  289.             Gosub LABEL007
  290.             Inc STRING007
  291.             Gosub LABEL006
  292.         Case "UP"
  293.             Gosub LABEL007
  294.             Dec STRING007
  295.             Gosub LABEL006
  296.         Case Else
  297.             If (InStr(STRING008, STRING003) <> 0) Then
  298.                 AnsiPos 1, 22
  299.                 Print TSTRING012(4)
  300.                 Goto LABEL001
  301.             Endif
  302.             If (STRING003 == Chr(13)) Then
  303.                 STRING007 = STRING007 - 4
  304.                 STRING009 = "m" + STRING001 + ".key"
  305.                 STRING010 = ReadLine(PPEPath() + STRING009, STRING007)
  306.                 Print "@X07"
  307.                 Cls
  308.                 KbdStuff STRING010 + Chr(13)
  309.             Endif
  310.             End
  311.     End Select
  312.     :LABEL003
  313.     Goto LABEL001
  314.     :LABEL004
  315.     AnsiPos 1, 4
  316.     PrintLn TSTRING012(3)
  317.     For INTEGER001 = 5 To 21
  318.         If (STRING006 == 1) Then
  319.             AnsiPos STRING006, INTEGER001
  320.             Print TSTRING014(1, INTEGER001)
  321.             Continue
  322.         Endif
  323.         If (STRING006 == 16) Then
  324.             AnsiPos STRING006, INTEGER001
  325.             Print TSTRING014(2, INTEGER001)
  326.             Continue
  327.         Endif
  328.         If (STRING006 == 31) Then
  329.             AnsiPos STRING006, INTEGER001
  330.             Print TSTRING014(3, INTEGER001)
  331.             Continue
  332.         Endif
  333.         If (STRING006 == 46) Then
  334.             AnsiPos STRING006, INTEGER001
  335.             Print TSTRING014(4, INTEGER001)
  336.             Continue
  337.         Endif
  338.         If (STRING006 == 61) Then
  339.             AnsiPos STRING006, INTEGER001
  340.             Print TSTRING014(5, INTEGER001)
  341.         Endif
  342.     Next
  343.     AnsiPos STRING002, 4
  344.     If (STRING001 == 1) Then
  345.         Print TSTRING012(5)
  346.     Else
  347.         Print TSTRING012(6)
  348.     Endif
  349.     If (STRING001 == 5) Then
  350.         Print TSTRING012(7)
  351.     Else
  352.         Print TSTRING012(21)
  353.     Endif
  354.     If (STRING001 == 5) Then
  355.         Print TSTRING012(8)
  356.     Else
  357.         PrintLn TSTRING012(9)
  358.     Endif
  359.     STRING004 = 1
  360.     :LABEL005
  361.     If (STRING004 == 17) Then
  362.         Return
  363.     Endif
  364.     STRING005 = ReadLine(PPEPath() + "M" + STRING001 + ".MEN", STRING004)
  365.     If ((STRING005 == "") || (STRING005 == Chr(13))) Then
  366.         AnsiPos STRING002, STRING004 + 4
  367.         PrintLn TSTRING012(10)
  368.         STRING006 = STRING002
  369.         Gosub LABEL006
  370.         Return
  371.     Endif
  372.     AnsiPos STRING002, STRING004 + 4
  373.     Print TSTRING012(11)
  374.     STRING005 = Left(STRING005, 16)
  375.     While (Len(STRING005) < 16) Do
  376.         Inc STRING005
  377.         If (Len(STRING005) < 16) Then
  378.         EndWhile
  379.     Endif
  380.     OpText STRING005
  381.     Print TSTRING012(12)
  382.     PrintLn TSTRING012(13)
  383.     Inc STRING004
  384.     Goto LABEL005
  385.     :LABEL006
  386.     While ((STRING007 <= 4)) Inc STRING007
  387.     STRING005 = ReadLine(PPEPath() + "M" + STRING001 + ".MEN", STRING007 - 4)
  388.     If ((STRING005 == "") || (STRING005 == Chr(13))) Then
  389.         Dec STRING007
  390.         Goto LABEL006
  391.     Endif
  392.     STRING005 = Left(STRING005, 16)
  393.     While (Len(STRING005) < 16) Do
  394.         STRING005 = STRING005 + " "
  395.         If (Len(STRING005) < 16) Then
  396.         EndWhile
  397.     Endif
  398.     AnsiPos STRING002, STRING007
  399.     OpText STRING005
  400.     Print TSTRING012(14)
  401.     Print TSTRING012(15)
  402.     PrintLn TSTRING012(16)
  403.     Return
  404.     :LABEL007
  405.     STRING005 = ReadLine(PPEPath() + "M" + STRING001 + ".MEN", STRING007 - 4)
  406.     If ((STRING005 == "") || (STRING005 == Chr(13))) Then
  407.         Dec STRING007
  408.         Goto LABEL007
  409.     Endif
  410.     STRING005 = Left(STRING005, 16)
  411.     While (Len(STRING005) < 16) Do
  412.         STRING005 = STRING005 + " "
  413.         If (Len(STRING005) < 16) Then
  414.         EndWhile
  415.     Endif
  416.     AnsiPos STRING002, STRING007
  417.     OpText STRING005
  418.     Print TSTRING012(11)
  419.     Print TSTRING012(12)
  420.     PrintLn TSTRING012(13)
  421.     Return
  422.  
  423.     EndProc
  424.  
  425.  
  426. ;------------------------------------------------------------------------------
  427.  
  428.     Procedure PROC004(Integer INTEGER005)
  429.  
  430.     Select Case (INTEGER005)
  431.         Case 1
  432.             Log "PullDown Menu System Error: File Missing: PULL.CNF", 0
  433.         Case 2
  434.             Log "PullDown Menu System Error: File Missing: PROMPTS.[language]", 0
  435.         Case 3
  436.             Log "PullDown Menu System Error: File Missing: M1.KEY", 0
  437.         Case 4
  438.             Log "PullDown Menu System Error: File Missing: M2.KEY", 0
  439.         Case 5
  440.             Log "PullDown Menu System Error: File Missing: M3.KEY", 0
  441.         Case 6
  442.             Log "PullDown Menu System Error: File Missing: M4.KEY", 0
  443.         Case 7
  444.             Log "PullDown Menu System Error: File Missing: M5.KEY", 0
  445.         Case 8
  446.             Log "PullDown Menu System Error: File Missing: M1.MEN", 0
  447.         Case 9
  448.             Log "PullDown Menu System Error: File Missing: M2.MEN", 0
  449.         Case 10
  450.             Log "PullDown Menu System Error: File Missing: M3.MEN", 0
  451.         Case 11
  452.             Log "PullDown Menu System Error: File Missing: M4.MEN", 0
  453.         Case 12
  454.             Log "PullDown Menu System Error: File Missing: M5.MEN", 0
  455.         Case Else
  456.             Log "PullDown Menu System Error: File Missing: UnDefined Error", 0
  457.     End Select
  458.     End
  459.  
  460.     EndProc
  461.  
  462.  
  463. ;------------------------------------------------------------------------------
  464.  
  465.     Procedure PROC005()
  466.  
  467.     For INTEGER001 = 1 To 5
  468.         For INTEGER002 = 5 To 21
  469.             Select Case (INTEGER001)
  470.                 Case 1
  471.                     STRING002 = 1
  472.                 Case 2
  473.                     STRING002 = 16
  474.                 Case 3
  475.                     STRING002 = 31
  476.                 Case 4
  477.                     STRING002 = 46
  478.                 Case 5
  479.                     STRING002 = 61
  480.             End Select
  481.             TSTRING014(INTEGER001, INTEGER002) = ScrText(STRING002, INTEGER002, 20, 1)
  482.         Next
  483.     Next
  484.  
  485.     EndProc
  486.  
  487.  
  488. ;------------------------------------------------------------------------------
  489. ;
  490. ; Usage report (before postprocessing)
  491. ;
  492. ; ■ Statements used :
  493. ;
  494. ;    5       End
  495. ;    2       Cls
  496. ;    1       Color 
  497. ;    137     Goto 
  498. ;    105     Let 
  499. ;    24      Print 
  500. ;    6       PrintLn 
  501. ;    79      If 
  502. ;    4       DispFile 
  503. ;    14      Log 
  504. ;    21      Gosub 
  505. ;    4       Return
  506. ;    4       Inc 
  507. ;    3       Dec 
  508. ;    1       KbdStuff 
  509. ;    1       KbdChkOn
  510. ;    3       OpText 
  511. ;    1       WrUNet 
  512. ;    19      AnsiPos 
  513. ;    14      Lang 
  514. ;    3       EndProc
  515. ;
  516. ;
  517. ; ■ Functions used :
  518. ;
  519. ;    64      +
  520. ;    3       -
  521. ;    54      ==
  522. ;    1       <>
  523. ;    11      <
  524. ;    5       <=
  525. ;    8       >=
  526. ;    90      !
  527. ;    8       &&
  528. ;    8       ||
  529. ;    6       Len(
  530. ;    3       Left()
  531. ;    5       Chr()
  532. ;    1       InStr()
  533. ;    2       Inkey()
  534. ;    1       Mask_Ascii()
  535. ;    28      PPEPath()
  536. ;    1       PcbNode()
  537. ;    8       ReadLine()
  538. ;    1       UN_Name()
  539. ;    1       UN_City()
  540. ;    16      Exist()
  541. ;    1       Carrier()
  542. ;    3       LangExt()
  543. ;    1       GrafMode()
  544. ;    3       PPEName()
  545. ;    1       ScrText()
  546. ;
  547. ;------------------------------------------------------------------------------
  548. ;
  549. ; Analysis flags : No flag
  550. ;
  551. ;------------------------------------------------------------------------------
  552. ;
  553. ; Postprocessing report
  554. ;
  555. ;    4       For/Next
  556. ;    4       While/EndWhile
  557. ;    39      If/Then or If/Then/Else
  558. ;    5       Select Case
  559. ;
  560. ;------------------------------------------------------------------------------
  561. ;                 AEGiS Corp - Break the routines, code against the machines!
  562. ;------------------------------------------------------------------------------
  563.