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