home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / PWAEEM12.ZIP / EEOM.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-02-27  |  9KB  |  577 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.     String   STRING001
  24.     String   STRING002
  25.     String   STRING003
  26.     String   TSTRING004(9)
  27.     String   TSTRING005(9)
  28.     String   STRING006
  29.     String   STRING007
  30.     String   STRING008
  31.     String   STRING009
  32.     String   STRING010
  33.     String   STRING011
  34.     String   STRING012
  35.     String   STRING013
  36.     String   STRING014
  37.     String   STRING015
  38.     String   STRING016
  39.     String   STRING017
  40.     String   STRING018
  41.     String   STRING019
  42.     String   STRING020
  43.     String   STRING021
  44.     Time     TIME001
  45.     Time     TIME002
  46.     Int      TINT001(9)
  47.     Int      INT002
  48.     Int      INT003
  49.     Int      INT004
  50.     Int      INT005
  51.     Int      INT006
  52.     Int      INT007
  53.     Int      INT008
  54.     Int      INT011
  55.     Int      INT013
  56.     Int      INT014
  57.     Declare  Procedure PROC001()
  58.     Declare  Procedure PROC002()
  59.     Declare  Procedure PROC003()
  60.     Declare  Procedure PROC004()
  61.     Declare  Procedure PROC005()
  62.     Declare  Procedure PROC006()
  63.     Declare  Procedure PROC007()
  64.     Declare  Procedure PROC008(Int INT015, Int INT016)
  65.     Declare  Procedure PROC009(Int INT009, Int INT010)
  66.     Declare  Procedure PROC010(Int INT012)
  67.  
  68. ;------------------------------------------------------------------------------
  69.  
  70.     PROC001()
  71.     PROC002()
  72.     PROC003()
  73.     PROC005()
  74.     End
  75.  
  76. ;------------------------------------------------------------------------------
  77.  
  78.     Procedure PROC004()
  79.  
  80.     Int      INT005
  81.  
  82.     Print STRING006
  83.     For INT005 = 1 To 8
  84.         TINT001(INT005) = GetX()
  85.         Print TSTRING004(INT005) + Space(INT002)
  86.     Next
  87.  
  88.     EndProc
  89.  
  90.  
  91. ;------------------------------------------------------------------------------
  92.  
  93.     Procedure PROC005()
  94.  
  95.     Int      INT006
  96.     Int      INT007
  97.     Int      INT008
  98.     Boolean  BOOLEAN003
  99.     Time     TIME001
  100.     Time     TIME002
  101.  
  102.     INT007 = 1
  103.     INT006 = 1
  104.     If (INT003) Then
  105.         TIME001 = Time()
  106.         KbdChkOff
  107.     Endif
  108.     PROC004()
  109.     PROC008(INT006, INT007)
  110.     BOOLEAN003 = 0
  111.     :LABEL001
  112.     If (BOOLEAN003) Goto LABEL002
  113.     If (INT003) Then
  114.         TIME002 = Time()
  115.         If (TIME002 - TIME001 > 60 * INT003) Then
  116.             Newline
  117.             DispText 55, 32768 + 2048 + 256 + 128
  118.             Bye
  119.         Endif
  120.     Endif
  121.     Delay INT004
  122.     INT008 = Asc(Inkey())
  123.     If ((((((INT008 == 82) || (INT008 == 68)) || (INT008 == 54)) || (INT008 == 56)) || (INT008 == 32)) || (INT008 == 62)) Then
  124.         INT007 = INT006
  125.         Inc INT006
  126.         If (INT006 > 8) INT006 = 1
  127.         PROC008(INT006, INT007)
  128.     ElseIf ((((((INT008 == 76) || (INT008 == 85)) || (INT008 == 52)) || (INT008 == 50)) || (INT008 == 9)) || (INT008 == 60)) Then
  129.         INT007 = INT006
  130.         Dec INT006
  131.         If (INT006 < 1) INT006 = 8
  132.         PROC008(INT006, INT007)
  133.     Else
  134.         Select Case (INT008)
  135.             Case 99, 67
  136.                 INT007 = INT006
  137.                 INT006 = 1
  138.                 PROC008(INT006, INT007)
  139.                 If (BOOLEAN002) BOOLEAN003 = 1
  140.             Case 100, 68
  141.                 INT007 = INT006
  142.                 INT006 = 2
  143.                 PROC008(INT006, INT007)
  144.                 If (BOOLEAN002) BOOLEAN003 = 1
  145.             Case 106, 74
  146.                 INT007 = INT006
  147.                 INT006 = 3
  148.                 PROC008(INT006, INT007)
  149.                 If (BOOLEAN002) BOOLEAN003 = 1
  150.             Case 107, 75
  151.                 INT007 = INT006
  152.                 INT006 = 4
  153.                 PROC008(INT006, INT007)
  154.                 If (BOOLEAN002) BOOLEAN003 = 1
  155.             Case 110, 78
  156.                 INT007 = INT006
  157.                 INT006 = 5
  158.                 PROC008(INT006, INT007)
  159.                 If (BOOLEAN002) BOOLEAN003 = 1
  160.             Case 114, 82
  161.                 INT007 = INT006
  162.                 INT006 = 6
  163.                 PROC008(INT006, INT007)
  164.                 If (BOOLEAN002) BOOLEAN003 = 1
  165.             Case 115, 83
  166.                 INT007 = INT006
  167.                 INT006 = 7
  168.                 PROC008(INT006, INT007)
  169.                 If (BOOLEAN002) BOOLEAN003 = 1
  170.             Case 43, 93
  171.                 INT007 = INT006
  172.                 If (BOOLEAN002) Then
  173.                     INT006 = 9
  174.                     BOOLEAN003 = 1
  175.                 Else
  176.                     INT006 = 8
  177.                 Endif
  178.                 PROC008(INT006, INT007)
  179.             Case 45, 91
  180.                 INT007 = INT006
  181.                 If (BOOLEAN002) Then
  182.                     INT006 = 10
  183.                     PROC008(INT006, INT007)
  184.                     BOOLEAN003 = 1
  185.                 Else
  186.                     INT006 = 8
  187.                 Endif
  188.                 PROC008(INT006, INT007)
  189.             Case 13
  190.                 BOOLEAN003 = 1
  191.             Case 63
  192.                 PROC006()
  193.                 INT006 = 0
  194.                 BOOLEAN003 = 1
  195.             Case 33
  196.                 PROC007()
  197.                 PROC004()
  198.                 PROC008(INT006, INT007)
  199.             Case 0
  200.                 INT007 = INT006
  201.                 INT006 = 8
  202.                 PROC008(INT006, INT007)
  203.                 If (BOOLEAN002) BOOLEAN003 = 1
  204.             Endif
  205.     End Select
  206.     Goto LABEL001
  207.     :LABEL002
  208.     PROC009(INT006, INT008)
  209.  
  210.     EndProc
  211.  
  212.  
  213. ;------------------------------------------------------------------------------
  214.  
  215.     Procedure PROC007()
  216.  
  217.     String   STRING019
  218.  
  219.     STRING019 = "@X0FEnhanced End of Message v1.2 by Drew [PWA]@X07"
  220.     Print Chr(13)
  221.     ClrEol
  222.     Print Chr(13)
  223.     Print Space((79 - Len(StripAtx(STRING019))) / 2) + STRING019
  224.     Delay 35
  225.     Print Chr(13)
  226.     ClrEol
  227.     Print Chr(13)
  228.  
  229.     EndProc
  230.  
  231.  
  232. ;------------------------------------------------------------------------------
  233.  
  234.     Procedure PROC009(Int INT009, Int INT010)
  235.  
  236.     Int      INT011
  237.  
  238.     Print Chr(13)
  239.     ClrEol
  240.     INT011 = 3
  241.     Select Case (INT009)
  242.         Case 0
  243.             Print STRING007
  244.             Print STRING018
  245.             KbdStuff Chr(13)
  246.         Case 1
  247.             Print STRING007
  248.             Print STRING009
  249.             KbdStuff Chr(13)
  250.         Case 2
  251.             Print STRING007
  252.             Print STRING010
  253.             KbdStuff "D"
  254.         Case 3
  255.             Print STRING007
  256.             Print STRING011
  257.             KbdStuff "J"
  258.         Case 4
  259.             Print STRING007
  260.             Print STRING012
  261.             KbdStuff "K"
  262.         Case 5
  263.             Print STRING007
  264.             Print STRING013
  265.             KbdStuff "N"
  266.         Case 6
  267.             Print STRING007
  268.             Print STRING014
  269.             KbdStuff "RE"
  270.         Case 7
  271.             Print STRING007
  272.             Print STRING015
  273.             KbdStuff "SKIP"
  274.         Case 8
  275.             PROC010(INT010)
  276.             INT011 = 0
  277.         Case 9
  278.             Print STRING007
  279.             Print STRING016
  280.             KbdStuff "+"
  281.         Case 10
  282.             Print STRING007
  283.             Print STRING017
  284.             KbdStuff "-"
  285.     End Select
  286.     Delay INT011
  287.  
  288.     EndProc
  289.  
  290.  
  291. ;------------------------------------------------------------------------------
  292.  
  293.     Procedure PROC010(Int INT012)
  294.  
  295.     String   STRING020
  296.     String   STRING021
  297.     Boolean  BOOLEAN004
  298.     Int      INT013
  299.     Int      INT014
  300.  
  301.     Print STRING008
  302.     INT014 = GetX() - 1
  303.     If (InStr(Mask_AlNum() + Mask_Ascii(), Chr(INT012)) && (INT012 <> 13)) Then
  304.         Print Chr(INT012)
  305.         STRING020 = Chr(INT012)
  306.         INT013 = 1
  307.     Else
  308.         STRING020 = ""
  309.         INT013 = 0
  310.     Endif
  311.     BOOLEAN004 = 0
  312.     :LABEL003
  313.     If (BOOLEAN004) Goto LABEL004
  314.     Delay INT004
  315.     STRING021 = Inkey()
  316.     Select Case (Asc(STRING021))
  317.         Case 13
  318.             If (STRING020 == "") Then
  319.                 STRING020 = Chr(13)
  320.                 Print STRING009
  321.             Endif
  322.             BOOLEAN004 = 1
  323.         Case 27, 21
  324.             Print Chr(13)
  325.             Forward INT014
  326.             ClrEol
  327.             Print Chr(13)
  328.             Forward INT014
  329.             INT013 = 0
  330.             STRING020 = ""
  331.         Case 8
  332.             If (INT013 > 0) Then
  333.                 Print STRING021 + " " + STRING021
  334.                 Dec INT013
  335.                 STRING020 = Left(STRING020, Len(STRING020) - 1)
  336.             Endif
  337.         Case InStr(Mask_AlNum(), STRING021)
  338.         Case 79 - Len(StripAtx(STRING008))
  339.             Print STRING021
  340.             Inc INT013
  341.             STRING020 = STRING020 + STRING021
  342.     End Select
  343.     Goto LABEL003
  344.     :LABEL004
  345.     If (Lower(STRING020) == "h") Then
  346.         KbdStuff "he"
  347.     ElseIf (STRING020 == "") Then
  348.         KbdStuff Chr(13)
  349.     Else
  350.         KbdStuff STRING020
  351.     Endif
  352.  
  353.     EndProc
  354.  
  355.  
  356. ;------------------------------------------------------------------------------
  357.  
  358.     Procedure PROC006()
  359.  
  360.     If (Exist(PPEPath() + "EEOM.HLP")) Then
  361.         DispFile PPEPath() + "EEOM.HLP", 0
  362.         KbdStuff "/"
  363.     Endif
  364.  
  365.     EndProc
  366.  
  367.  
  368. ;------------------------------------------------------------------------------
  369.  
  370.     Procedure PROC003()
  371.  
  372.     If (Exist(PPEPath() + "EEOM.PCB")) Then
  373.         DispFile PPEPath() + "EEOM.PCB", 0
  374.     Endif
  375.  
  376.     EndProc
  377.  
  378.  
  379. ;------------------------------------------------------------------------------
  380.  
  381.     Procedure PROC008(Int INT015, Int INT016)
  382.  
  383.     Print Chr(13)
  384.     Forward TINT001(INT016) - 1
  385.     Print TSTRING004(INT016)
  386.     Print Chr(13)
  387.     Forward TINT001(INT015) - 1
  388.     Print TSTRING005(INT015)
  389.  
  390.     EndProc
  391.  
  392.  
  393. ;------------------------------------------------------------------------------
  394.  
  395.     Procedure PROC002()
  396.  
  397.     If (BOOLEAN001) Then
  398.         GetUser
  399.         If ((GetY() >= U_PageLen) && ((U_Cls == 0) || ((U_Cls == 1) && (U_Scroll == 1)))) Then
  400.             Wait
  401.         Endif
  402.     Endif
  403.  
  404.     EndProc
  405.  
  406.  
  407. ;------------------------------------------------------------------------------
  408.  
  409.     Procedure PROC001()
  410.  
  411.     Int      INT017
  412.  
  413.     STRING001 = PPEPath() + "EEOM.CFG"
  414.     STRING002 = PPEPath() + "LB.CFG"
  415.     STRING003 = PPEPath() + "STRINGS.CFG"
  416.     If (Exist(STRING002)) Then
  417.         INT002 = S2I(ReadLine(STRING002, 1), 10)
  418.         For INT017 = 1 To 8
  419.             TSTRING004(INT017) = ReadLine(STRING002, 1 + INT017 * 2 - 1)
  420.             TSTRING005(INT017) = ReadLine(STRING002, 1 + INT017 * 2)
  421.         Next
  422.     Else
  423.         INT002 = 0
  424.         TSTRING004(1) = "@X08 Cont @X07"
  425.         TSTRING005(1) = "@X4F CONT @X07"
  426.         TSTRING004(2) = "@X08 Dload @X07"
  427.         TSTRING005(2) = "@X4F DLOAD @X07"
  428.         TSTRING004(3) = "@X08 Jump @X07"
  429.         TSTRING005(3) = "@X4F JUMP @X07"
  430.         TSTRING004(4) = "@X08 Kill @X07"
  431.         TSTRING005(4) = "@X4F KILL @X07"
  432.         TSTRING004(5) = "@X08 Nomore @X07"
  433.         TSTRING005(5) = "@X4F NOMORE @X07"
  434.         TSTRING004(6) = "@X08 Reply @X07"
  435.         TSTRING005(6) = "@X4F REPLY @X07"
  436.         TSTRING004(7) = "@X08 Skip @X07"
  437.         TSTRING005(7) = "@X4F SKIP @X07"
  438.         TSTRING004(8) = "@X08 Other @X07"
  439.         TSTRING005(8) = "@X4F OTHER @X07"
  440.     Endif
  441.     If (Exist(STRING001)) Then
  442.         If (Lower(ReadLine(STRING001, 1)) == "yes") Then
  443.             BOOLEAN002 = 1
  444.         Else
  445.             BOOLEAN002 = 0
  446.         Endif
  447.         If (Lower(ReadLine(STRING001, 2)) == "yes") Then
  448.             BOOLEAN001 = 1
  449.         Else
  450.             BOOLEAN001 = 0
  451.         Endif
  452.         INT004 = S2I(ReadLine(STRING001, 3), 10)
  453.     Else
  454.         BOOLEAN002 = 1
  455.         BOOLEAN001 = 1
  456.         INT004 = 1
  457.     Endif
  458.     If (Exist(STRING003)) Then
  459.         STRING006 = ReadLine(STRING003, 1)
  460.         STRING007 = ReadLine(STRING003, 2)
  461.         STRING008 = ReadLine(STRING003, 3)
  462.         STRING009 = ReadLine(STRING003, 4)
  463.         STRING010 = ReadLine(STRING003, 5)
  464.         STRING011 = ReadLine(STRING003, 6)
  465.         STRING012 = ReadLine(STRING003, 7)
  466.         STRING013 = ReadLine(STRING003, 8)
  467.         STRING014 = ReadLine(STRING003, 9)
  468.         STRING015 = ReadLine(STRING003, 10)
  469.         STRING016 = ReadLine(STRING003, 11)
  470.         STRING017 = ReadLine(STRING003, 12)
  471.         STRING018 = ReadLine(STRING003, 13)
  472.     Else
  473.         STRING006 = "@X0FMsg #: @X08[@X0F@CURMSGNUM@@X08] [@X0F+@X08/@X0F-@X08/@X0F?@X08] @X07"
  474.         STRING007 = "@X0FExecuting Msg Cmd: @X07"
  475.         STRING008 = "@X0FOther Msg Cmd: @X07"
  476.         STRING009 = "@X04Continue message read...@X07"
  477.         STRING010 = "@X04Download message...@X07"
  478.         STRING011 = "@X04Jump conference@X07"
  479.         STRING012 = "@X04Killing message #@CURMSGNUM@@X07"
  480.         STRING013 = "@X04No more (quit)@X07"
  481.         STRING014 = "@X04Reply to message #@CURMSGNUM@@X07"
  482.         STRING015 = "@X04Skip conference...@X07"
  483.         STRING016 = "@X04Continuing forward...@X07"
  484.         STRING017 = "@X04Continuing backward...@X07"
  485.         STRING018 = "@X04Re-reading message...@X07"
  486.     Endif
  487.     INT003 = ReadLine(PCBDat(), 89)
  488.  
  489.     EndProc
  490.  
  491.  
  492. ;------------------------------------------------------------------------------
  493. ;
  494. ; Usage report (before postprocessing)
  495. ;
  496. ; ■ Statements used :
  497. ;
  498. ;    1       End
  499. ;    4       ClrEol
  500. ;    1       Wait
  501. ;    96      Goto 
  502. ;    124     Let 
  503. ;    39      Print 
  504. ;    64      If 
  505. ;    2       DispFile 
  506. ;    1       GetUser
  507. ;    4       Delay 
  508. ;    2       Inc 
  509. ;    2       Dec 
  510. ;    1       Newline
  511. ;    1       DispText 
  512. ;    14      KbdStuff 
  513. ;    1       Bye
  514. ;    1       KbdChkOff
  515. ;    4       Forward 
  516. ;    10      EndProc
  517. ;
  518. ;
  519. ; ■ Functions used :
  520. ;
  521. ;    3       *
  522. ;    1       /
  523. ;    21      +
  524. ;    8       -
  525. ;    56      ==
  526. ;    1       <>
  527. ;    4       <
  528. ;    2       <=
  529. ;    4       >
  530. ;    5       >=
  531. ;    54      !
  532. ;    7       &&
  533. ;    24      ||
  534. ;    3       Len(
  535. ;    3       Lower()
  536. ;    1       Left()
  537. ;    2       Space()
  538. ;    16      Chr()
  539. ;    5       Asc()
  540. ;    3       InStr()
  541. ;    2       Time()
  542. ;    2       StripAtx()
  543. ;    2       Inkey()
  544. ;    2       Mask_AlNum()
  545. ;    2       Mask_Ascii()
  546. ;    1       PCBDat()
  547. ;    7       PPEPath()
  548. ;    20      ReadLine()
  549. ;    5       Exist()
  550. ;    2       S2I()
  551. ;    2       GetX()
  552. ;    1       GetY()
  553. ;
  554. ;------------------------------------------------------------------------------
  555. ;
  556. ; Analysis flags : d
  557. ;
  558. ; d - Access PCBOARD.DAT ■ 2
  559. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  560. ;     for many PPE so they can find various informations on the system
  561. ;     (system paths, max number of lines in messages, ...) but it may also
  562. ;     be a way to gather vital informations.
  563. ;     ■ Search for : PCBDAT()
  564. ;
  565. ;------------------------------------------------------------------------------
  566. ;
  567. ; Postprocessing report
  568. ;
  569. ;    2       For/Next
  570. ;    0       While/EndWhile
  571. ;    21      If/Then or If/Then/Else
  572. ;    3       Select Case
  573. ;
  574. ;------------------------------------------------------------------------------
  575. ;                 AEGiS Corp - Break the routines, code against the machines!
  576. ;------------------------------------------------------------------------------
  577.