home *** CD-ROM | disk | FTP | other *** search
/ The Pier Shareware 6 / The_Pier_Shareware_Number_6_(The_Pier_Exchange)_(1995).iso / 005 / dmsppe1a.zip / EOM.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-11-27  |  8KB  |  429 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 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Integer  INTEGER001
  23.     Integer  INTEGER002
  24.     Integer  INTEGER003
  25.     Integer  INTEGER004
  26.     Integer  TINTEGER005(12)
  27.     Integer  TINTEGER006(12)
  28.     Integer  INTEGER007
  29.     Integer  INTEGER008
  30.     String   STRING001
  31.     String   TSTRING002(12)
  32.     String   TSTRING003(12)
  33.     String   STRING004
  34.     String   TSTRING005(12)
  35.     String   TSTRING006(12)
  36.     String   TSTRING007(12)
  37.     String   STRING008
  38.     String   STRING009
  39.  
  40. ;------------------------------------------------------------------------------
  41.  
  42.     INTEGER002 = 12
  43.     TSTRING002(1) = "C"
  44.     TSTRING002(2) = "N"
  45.     TSTRING002(3) = "P"
  46.     TSTRING002(4) = "R"
  47.     TSTRING002(5) = "K"
  48.     TSTRING002(6) = "T"
  49.     TSTRING002(7) = "E"
  50.     TSTRING002(8) = "S"
  51.     TSTRING002(9) = "+"
  52.     TSTRING002(10) = "-"
  53.     TSTRING002(11) = "Q"
  54.     TSTRING002(12) = "H"
  55.     TSTRING003(1) = Chr(13)
  56.     TSTRING003(2) = "NEXT"
  57.     TSTRING003(3) = "PREV"
  58.     TSTRING003(4) = "RE"
  59.     TSTRING003(5) = "K"
  60.     TSTRING003(6) = "D"
  61.     TSTRING003(7) = "EDIT"
  62.     TSTRING003(8) = "NS"
  63.     TSTRING003(9) = "+"
  64.     TSTRING003(10) = "-"
  65.     TSTRING003(11) = "N"
  66.     TSTRING003(12) = "H"
  67.     BOOLEAN002 = 0
  68.     If (KbdFilUsed()) Then
  69.         STRING004 = Inkey()
  70.         If (STRING004 == "F") Then
  71.             STRING001 = "FLAG" + Chr(13)
  72.             BOOLEAN002 = 1
  73.             Goto LABEL001
  74.         Endif
  75.         If (STRING004 == "V") Then
  76.             STRING001 = "V" + Chr(13)
  77.             BOOLEAN002 = 1
  78.         Endif
  79.         :LABEL001
  80.         KeyFlush
  81.     Endif
  82.     If (BOOLEAN002) Goto LABEL002
  83.     BOOLEAN001 = AnsiOn()
  84.     If (BOOLEAN001) Then
  85.         Gosub LABEL003
  86.         PrintLn 
  87.         PrintLn 
  88.     Else
  89.         Gosub LABEL007
  90.     Endif
  91.     :LABEL002
  92.     KbdStuff STRING001
  93.     End
  94.     :LABEL003
  95.     INTEGER004 = CurColor()
  96.     TINTEGER006(1) = 1
  97.     TINTEGER006(2) = 1
  98.     TINTEGER006(3) = 1
  99.     TINTEGER006(4) = 1
  100.     TINTEGER006(5) = 1
  101.     TINTEGER006(6) = 4
  102.     TINTEGER006(7) = 1
  103.     TINTEGER006(8) = 4
  104.     TINTEGER006(9) = 1
  105.     TINTEGER006(10) = 1
  106.     TINTEGER006(11) = 1
  107.     TINTEGER006(12) = 1
  108.     STRING008 = "@X0E(@X0C@MINLEFT@@X0E min. left) @X0C[ @INCONF@]@X0E" + " @X0AEnd of Message Command:"
  109.     TSTRING005(1) = "@X0B @X0EC@X0Bont "
  110.     TSTRING005(2) = "@X0B @X0EN@X0Bext "
  111.     TSTRING005(3) = "@X0B @X0EP@X0Brev "
  112.     TSTRING005(4) = "@X0B @X0ER@X0Beply "
  113.     TSTRING005(5) = "@X0B @X0EK@X0Bill "
  114.     TSTRING005(6) = "@X0B cap@X0ET@X0Bure "
  115.     TSTRING005(7) = "@X0B @X0EE@X0Bdit "
  116.     TSTRING005(8) = "@X0B non@X0ES@X0Btop "
  117.     TSTRING005(9) = "@X0B @X0E+@X0B "
  118.     TSTRING005(10) = "@X0B @X0E-@X0B "
  119.     TSTRING005(11) = "@X0B @X0EQ@X0Buit "
  120.     TSTRING005(12) = "@X0B @X0EH@X0Belp "
  121.     TSTRING006(1) = "@X3F @X3EC@X3Font "
  122.     TSTRING006(2) = "@X3F @X3EN@X3Fext "
  123.     TSTRING006(3) = "@X3F @X3EP@X3Frev "
  124.     TSTRING006(4) = "@X3F @X3ER@X3Feply "
  125.     TSTRING006(5) = "@X3F @X3EK@X3Fill "
  126.     TSTRING006(6) = "@X3F cap@X3ET@X3Fure "
  127.     TSTRING006(7) = "@X3F @X3EE@X3Fdit "
  128.     TSTRING006(8) = "@X3F non@X3ES@X3Ftop "
  129.     TSTRING006(9) = "@X3F @X3E+@X3F "
  130.     TSTRING006(10) = "@X3F @X3E-@X3F "
  131.     TSTRING006(11) = "@X3F @X3EQ@X3Fuit "
  132.     TSTRING006(12) = "@X3F @X3EH@X3Felp "
  133.     TSTRING007(1) = "-> read next message in current direction (+/-)"
  134.     TSTRING007(2) = "-> read next message (forward)"
  135.     TSTRING007(3) = "-> read previous message (backward)"
  136.     TSTRING007(4) = "-> reply to current message"
  137.     TSTRING007(5) = "-> delete current message"
  138.     TSTRING007(6) = "-> capture current message for immediate downloading"
  139.     TSTRING007(7) = "-> edit current message (if from you)"
  140.     TSTRING007(8) = "-> display all mail without pausing between messages"
  141.     TSTRING007(9) = "-> change read direction to forward"
  142.     TSTRING007(10) = "-> change read direction to backward"
  143.     TSTRING007(11) = "-> quit reading mail"
  144.     TSTRING007(12) = "-> help with this prompt"
  145.     INTEGER007 = 1
  146.     INTEGER008 = 1
  147.     Gosub LABEL012
  148.     :LABEL004
  149.     If (INTEGER001 == 13) Goto LABEL006
  150.     STRING004 = ""
  151.     BOOLEAN003 = 0
  152.     While (STRING004 == "") Do
  153.         STRING004 = Inkey()
  154.     EndWhile
  155.     If (Len(STRING004) == 1) Then
  156.         STRING004 = Upper(STRING004)
  157.         INTEGER001 = Asc(STRING004)
  158.     Else
  159.         INTEGER001 = 0
  160.     Endif
  161.     If ((Left(STRING004, 5) == "RIGHT") || (INTEGER001 == 32)) Then
  162.         INTEGER008 = INTEGER007 + 1
  163.         If (INTEGER008 > INTEGER002) Then
  164.             INTEGER008 = 1
  165.         Endif
  166.         BOOLEAN003 = 1
  167.     ElseIf ((Left(STRING004, 4) == "LEFT") || (INTEGER001 == 8)) Then
  168.         INTEGER008 = INTEGER007 - 1
  169.         If (INTEGER008 == 0) Then
  170.             INTEGER008 = INTEGER002
  171.         Endif
  172.         BOOLEAN003 = 1
  173.     ElseIf (Left(STRING004, 4) == "HOME") Then
  174.         INTEGER008 = 1
  175.         BOOLEAN003 = 1
  176.     ElseIf (Left(STRING004, 3) == "END") Then
  177.         INTEGER008 = INTEGER002
  178.         BOOLEAN003 = 1
  179.     ElseIf (INTEGER001 == 13) Then
  180.         STRING001 = TSTRING003(INTEGER008)
  181.     Else
  182.         For INTEGER003 = 1 To INTEGER002
  183.             If (STRING004 == TSTRING002(INTEGER003)) Then
  184.                 INTEGER008 = INTEGER003
  185.                 BOOLEAN003 = 1
  186.                 INTEGER003 = INTEGER002
  187.             Endif
  188.         Next
  189.         If (BOOLEAN003) Goto LABEL005
  190.         If (OnLocal()) Then
  191.             Sound 920
  192.             Delay 3
  193.             Sound 0
  194.         Else
  195.             MPrint Chr(7)
  196.         Endif
  197.     Endif
  198.     :LABEL005
  199.     If (BOOLEAN003) Then
  200.         Gosub LABEL013
  201.     Endif
  202.     If ((INTEGER001 == 13) && (INTEGER007 == INTEGER002)) Then
  203.         Gosub LABEL011
  204.         INTEGER008 = 1
  205.         Gosub LABEL013
  206.         INTEGER001 = 0
  207.     Endif
  208.     Goto LABEL004
  209.     :LABEL006
  210.     Color INTEGER004
  211.     Return
  212.     :LABEL007
  213.     Gosub LABEL012
  214.     INTEGER001 = 0
  215.     :LABEL008
  216.     If (INTEGER001 == 13) Goto LABEL010
  217.     STRING004 = ""
  218.     While (STRING004 == "") Do
  219.         STRING004 = Inkey()
  220.     EndWhile
  221.     STRING004 = Upper(STRING004)
  222.     INTEGER001 = Asc(STRING004)
  223.     Select Case (INTEGER001)
  224.         Case 8
  225.             INTEGER001 = 0
  226.             If (STRING001 == "") Goto LABEL009
  227.             Backup 1
  228.             Print Space(1)
  229.             Backup 1
  230.             STRING001 = ""
  231.             :LABEL009
  232.         Case 13
  233.             If (STRING001 == "H") Then
  234.                 Backup 1
  235.                 Print Space(1)
  236.                 Backup 1
  237.                 Gosub LABEL011
  238.                 INTEGER001 = 0
  239.                 STRING001 = ""
  240.             Else
  241.                 STRING001 = STRING001 + Chr(13)
  242.             Endif
  243.         Case ""
  244.             For INTEGER003 = 1 To INTEGER002
  245.                 If (STRING004 == TSTRING002(INTEGER003)) Then
  246.                     Print TSTRING002(INTEGER003)
  247.                     STRING001 = TSTRING003(INTEGER003)
  248.                     INTEGER003 = INTEGER002
  249.                 Endif
  250.             Next
  251.         Case 
  252.             Sound 920
  253.             Delay 3
  254.             Sound 0
  255.         Case Else
  256.             MPrint Chr(7)
  257.     End Select
  258.     Goto LABEL008
  259.     :LABEL010
  260.     Return
  261.     :LABEL011
  262.     STRING009 = PPEPath() + "EOM.HLP"
  263.     If (BOOLEAN001) Then
  264.         Print Chr(27) + "[2B"
  265.         Backup GetX() - 1
  266.         ClrEol
  267.         For INTEGER003 = 1 To 4
  268.             Print Chr(27) + "[1A"
  269.             ClrEol
  270.         Next
  271.     Endif
  272.     SaveScrn
  273.     Cls
  274.     PrintLn "@X0AEnd of Message Prompt - @X0BUNREGISTERED     @X0ACopyright 1994 Data Management Systems"
  275.     PrintLn "                                                            All Rights Reserved"
  276.     PrintLn 
  277.     PrintLn 
  278.     PrintLn "     @X03Help is available only with the registered version of this software."
  279.     PrintLn "     Please remind your sysop to register this shareware product (@X02DMSPPE10@X03)."
  280.     PrintLn 
  281.     PrintLn 
  282.     If (OnLocal()) Then
  283.         Sound 920
  284.         Delay 3
  285.         Sound 0
  286.     Else
  287.         MPrint Chr(7)
  288.     Endif
  289.     Wait
  290.     Cls
  291.     RestScrn
  292.     If (BOOLEAN001) Then
  293.         Gosub LABEL012
  294.     Endif
  295.     Return
  296.     :LABEL012
  297.     GetUser
  298.     If (BOOLEAN001) Then
  299.         If (((GetY() > U_PageLen - 4) && U_Cls) && !U_Scroll) Then
  300.             Wait
  301.         Endif
  302.         PrintLn STRING008
  303.         Color 7
  304.         PrintLn "┌───────────────────────────────────────────────────────────────────────────┐"
  305.         PrintLn "│                                                                           │"
  306.         PrintLn "│                                                                           │"
  307.         Print "└───────────────────────────────────────────────────────────────────────────┘"
  308.         Print Chr(27) + "[2A"
  309.         Backup GetX() - 2
  310.         For INTEGER003 = 1 To INTEGER002
  311.             TINTEGER005(INTEGER003) = GetX()
  312.             If (INTEGER003 == INTEGER007) Then
  313.                 Print TSTRING006(INTEGER003)
  314.                 Continue
  315.             Endif
  316.             Print TSTRING005(INTEGER003)
  317.         Next
  318.         Print Chr(27) + "[1B"
  319.         Backup GetX() - 2
  320.         Color 47
  321.         Print TSTRING007(INTEGER007) + Space(75 - Len(TSTRING007(INTEGER007)))
  322.         Backup GetX() - 1
  323.         Forward TINTEGER005(INTEGER007) + TINTEGER006(INTEGER007) - 1
  324.         Print Chr(27) + "[1A"
  325.         Color INTEGER004
  326.     Else
  327.         PrintLn "(@MINLEFT@ min. left) [ @INCONF@]"
  328.         PrintLn "End of message command -> (C)ont  (N)ext  (P)rev  (R)eply  (K)ill  cap(T)ure"
  329.         Print "                          (E)dit  non(S)top  (+)  (-)  (Q)uit  (H)elp ? "
  330.     Endif
  331.     Return
  332.     :LABEL013
  333.     Backup GetX() - 1
  334.     Forward TINTEGER005(INTEGER007) - 1
  335.     Print TSTRING005(INTEGER007)
  336.     Backup GetX() - 1
  337.     Forward TINTEGER005(INTEGER008) - 1
  338.     Print TSTRING006(INTEGER008)
  339.     Print Chr(27) + "[1B"
  340.     Backup GetX() - 2
  341.     Color 47
  342.     Print TSTRING007(INTEGER008) + Space(75 - Len(TSTRING007(INTEGER008)))
  343.     Print Chr(27) + "[1A"
  344.     Backup GetX() - 1
  345.     Forward TINTEGER005(INTEGER008) + TINTEGER006(INTEGER008) - 1
  346.     Color INTEGER004
  347.     INTEGER007 = INTEGER008
  348.     Color INTEGER004
  349.     Return
  350.  
  351. ;------------------------------------------------------------------------------
  352. ;
  353. ; Usage report (before postprocessing)
  354. ;
  355. ; ■ Statements used :
  356. ;
  357. ;    1       End
  358. ;    2       Cls
  359. ;    2       ClrEol
  360. ;    2       Wait
  361. ;    7       Color 
  362. ;    64      Goto 
  363. ;    129     Let 
  364. ;    18      Print 
  365. ;    16      PrintLn 
  366. ;    39      If 
  367. ;    1       GetUser
  368. ;    9       Gosub 
  369. ;    5       Return
  370. ;    3       Delay 
  371. ;    1       KbdStuff 
  372. ;    12      Backup 
  373. ;    4       Forward 
  374. ;    1       SaveScrn
  375. ;    1       RestScrn
  376. ;    6       Sound 
  377. ;    3       MPrint 
  378. ;    1       KeyFlush
  379. ;
  380. ;
  381. ; ■ Functions used :
  382. ;
  383. ;    21      +
  384. ;    16      -
  385. ;    25      ==
  386. ;    4       <
  387. ;    4       <=
  388. ;    2       >
  389. ;    8       >=
  390. ;    40      !
  391. ;    11      &&
  392. ;    6       ||
  393. ;    3       Len(
  394. ;    2       Upper()
  395. ;    4       Left()
  396. ;    4       Space()
  397. ;    14      Chr()
  398. ;    2       Asc()
  399. ;    3       Inkey()
  400. ;    1       PPEPath()
  401. ;    3       OnLocal()
  402. ;    1       AnsiOn()
  403. ;    9       GetX()
  404. ;    1       GetY()
  405. ;    1       CurColor()
  406. ;    1       KbdFilUsed()
  407. ;
  408. ;------------------------------------------------------------------------------
  409. ;
  410. ; Analysis flags : M
  411. ;
  412. ; M - Send text to modem only ■ 4
  413. ;     Some informations are sent only to the modem, not to the local
  414. ;     screen, this is a well known way to make stealth backdoors, Check!
  415. ;     ■ Search for : SENDMODEM, MPRINT, MPRINTLN
  416. ;
  417. ;------------------------------------------------------------------------------
  418. ;
  419. ; Postprocessing report
  420. ;
  421. ;    4       For/Next
  422. ;    2       While/EndWhile
  423. ;    24      If/Then or If/Then/Else
  424. ;    1       Select Case
  425. ;
  426. ;------------------------------------------------------------------------------
  427. ;                 AEGiS Corp - Break the routines, code against the machines!
  428. ;------------------------------------------------------------------------------
  429.