home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / BBS / DMSPPE1B.ZIP / SCANMAIL.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-01-11  |  5KB  |  340 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.     String   STRING001
  22.     String   STRING002
  23.     String   TSTRING003(5)
  24.     String   TSTRING004(5)
  25.     String   TSTRING005(5)
  26.     String   TSTRING006(5)
  27.     String   STRING007
  28.     String   STRING008
  29.     Int      INT001
  30.     Int      INT002
  31.     Int      TINT003(5)
  32.     Int      TINT004(5)
  33.     Int      INT005
  34.     Int      INT006
  35.     Int      INT007
  36.     Int      INT008
  37.  
  38. ;------------------------------------------------------------------------------
  39.  
  40.     BOOLEAN001 = AnsiOn()
  41.     If (BOOLEAN001) Then
  42.         Gosub LABEL001
  43.     Else
  44.         Gosub LABEL004
  45.     Endif
  46.     Newline
  47.     KbdStuff STRING001
  48.     End
  49.     :LABEL001
  50.     INT002 = CurColor()
  51.     INT007 = 5
  52.     TSTRING005(1) = "C"
  53.     TSTRING005(2) = "S"
  54.     TSTRING005(3) = "A"
  55.     TSTRING005(4) = "N"
  56.     TSTRING005(5) = "H"
  57.     TINT004(1) = 1
  58.     TINT004(2) = 1
  59.     TINT004(3) = 1
  60.     TINT004(4) = 1
  61.     TINT004(5) = 1
  62.     TSTRING006(1) = "Y"
  63.     TSTRING006(2) = "A"
  64.     TSTRING006(3) = "ALL"
  65.     TSTRING006(4) = "N"
  66.     TSTRING006(5) = "H"
  67.     STRING007 = "@X0AScan mail since last read -> "
  68.     TSTRING003(1) = "@X0B @X0EC@X0Burrent "
  69.     TSTRING003(2) = "@X0B @X0ES@X0Belected "
  70.     TSTRING003(3) = "@X0B @X0EA@X0Bll "
  71.     TSTRING003(4) = "@X0B @X0EN@X0Bo "
  72.     TSTRING003(5) = "@X0B @X0EH@X0Belp "
  73.     TSTRING004(1) = "@X3F @X3EC@X3Furrent "
  74.     TSTRING004(2) = "@X3F @X3ES@X3Felected "
  75.     TSTRING004(3) = "@X3F @X3EA@X3Fll "
  76.     TSTRING004(4) = "@X3F @X3EN@X3Fo "
  77.     TSTRING004(5) = "@X3F @X3EH@X3Felp "
  78.     INT005 = 1
  79.     INT006 = 1
  80.     Gosub LABEL009
  81.     :LABEL002
  82.     If (INT001 == 13) Goto LABEL003
  83.     STRING002 = ""
  84.     BOOLEAN002 = 0
  85.     While (STRING002 == "") Do
  86.         STRING002 = Inkey()
  87.     EndWhile
  88.     If (Len(STRING002) == 1) Then
  89.         INT001 = Asc(STRING002)
  90.     Else
  91.         INT001 = 0
  92.     Endif
  93.     If ((Left(STRING002, 5) == "RIGHT") || (INT001 == 32)) Then
  94.         INT006 = INT005 + 1
  95.         If (INT006 > INT007) Then
  96.             INT006 = 1
  97.         Endif
  98.         BOOLEAN002 = 1
  99.     ElseIf ((Left(STRING002, 4) == "LEFT") || (INT001 == 8)) Then
  100.         INT006 = INT005 - 1
  101.         If (INT006 == 0) Then
  102.             INT006 = INT007
  103.         Endif
  104.         BOOLEAN002 = 1
  105.     ElseIf (Left(STRING002, 4) == "HOME") Then
  106.         INT006 = 1
  107.         BOOLEAN002 = 1
  108.     ElseIf (Left(STRING002, 3) == "END") Then
  109.         INT006 = INT007
  110.         BOOLEAN002 = 1
  111.     Else
  112.         Select Case (INT001)
  113.             Case 99, 67
  114.                 INT006 = 1
  115.                 BOOLEAN002 = 1
  116.             Case 115, 83
  117.                 INT006 = 2
  118.                 BOOLEAN002 = 1
  119.             Case 97, 65
  120.                 INT006 = 3
  121.                 BOOLEAN002 = 1
  122.             Case 110, 78
  123.                 INT006 = 4
  124.                 BOOLEAN002 = 1
  125.             Case 104, 72
  126.                 INT006 = 5
  127.                 BOOLEAN002 = 1
  128.             Case 13
  129.                 STRING001 = TSTRING006(INT006)
  130.             Case 
  131.                 Sound 920
  132.                 Delay 3
  133.                 Sound 0
  134.             Case Else
  135.                 MPrint Chr(7)
  136.             Endif
  137.     End Select
  138.     If (BOOLEAN002) Then
  139.         Gosub LABEL010
  140.     Endif
  141.     If ((INT001 == 13) && (INT005 == INT007)) Then
  142.         Gosub LABEL008
  143.         INT006 = 1
  144.         Gosub LABEL010
  145.         INT001 = 0
  146.     Endif
  147.     Goto LABEL002
  148.     :LABEL003
  149.     Color INT002
  150.     Return
  151.     :LABEL004
  152.     Gosub LABEL009
  153.     INT001 = 0
  154.     :LABEL005
  155.     If (INT001 == 13) Goto LABEL007
  156.     STRING002 = ""
  157.     While (STRING002 == "") Do
  158.         STRING002 = Inkey()
  159.     EndWhile
  160.     INT001 = Asc(STRING002)
  161.     If (((INT001 == 99) || (INT001 == 67)) && (STRING001 == "")) Then
  162.         Print "C"
  163.         STRING001 = "Y"
  164.     ElseIf (((INT001 == 115) || (INT001 == 83)) && (STRING001 == "")) Then
  165.         Print "S"
  166.         STRING001 = "A"
  167.     ElseIf (((INT001 == 97) || (INT001 == 65)) && (STRING001 == "")) Then
  168.         Print "A"
  169.         STRING001 = "ALL"
  170.     ElseIf (((INT001 == 110) || (INT001 == 78)) && (STRING001 == "")) Then
  171.         Print "N"
  172.         STRING001 = "N"
  173.     ElseIf (((INT001 == 104) || (INT001 == 72)) && (STRING001 == "")) Then
  174.         Print "H"
  175.         STRING001 = "H"
  176.     Else
  177.         Select Case (INT001)
  178.             Case 8
  179.                 INT001 = 0
  180.                 If (STRING001 == "") Goto LABEL006
  181.                 Backup 1
  182.                 Print Space(1)
  183.                 Backup 1
  184.                 STRING001 = ""
  185.                 :LABEL006
  186.             Case 13
  187.                 If (STRING001 == "H") Then
  188.                     Backup 1
  189.                     Print Space(1)
  190.                     Backup 1
  191.                     Gosub LABEL008
  192.                     INT001 = 0
  193.                     STRING001 = ""
  194.                 Else
  195.                     STRING001 = STRING001 + Chr(13)
  196.                 Endif
  197.             Case 
  198.                 Sound 920
  199.                 Delay 3
  200.                 Sound 0
  201.             Case Else
  202.                 MPrint Chr(7)
  203.             Endif
  204.     End Select
  205.     Goto LABEL005
  206.     :LABEL007
  207.     Return
  208.     :LABEL008
  209.     STRING008 = PPEPath() + "SCANMAIL.HLP"
  210.     Backup GetX() - 1
  211.     ClrEol
  212.     SaveScrn
  213.     Cls
  214.     PrintLn "@X0AScan Mail Prompt - @X0BUNREGISTERED                             @X0ACopyright 1994-1995"
  215.     PrintLn "                                                        Data Management Systems"
  216.     PrintLn "                                                            All Rights Reserved"
  217.     PrintLn 
  218.     PrintLn 
  219.     PrintLn "     @X03Help is available only with the registered version of this software."
  220.     PrintLn "     Please remind your sysop to register this shareware product (@X02DMSPPE1B@X03)."
  221.     PrintLn 
  222.     PrintLn 
  223.     If (OnLocal()) Then
  224.         Sound 920
  225.         Delay 3
  226.         Sound 0
  227.     Else
  228.         MPrint Chr(7)
  229.     Endif
  230.     Wait
  231.     Cls
  232.     RestScrn
  233.     Gosub LABEL009
  234.     Return
  235.     :LABEL009
  236.     If (BOOLEAN001) Then
  237.         Print STRING007
  238.         For INT008 = 1 To INT007
  239.             TINT003(INT008) = GetX()
  240.             If (INT008 == INT005) Then
  241.                 Print TSTRING004(INT008)
  242.                 Continue
  243.             Endif
  244.             Print TSTRING003(INT008)
  245.         Next
  246.         Backup GetX() - 1
  247.         Forward TINT003(INT005) + TINT004(INT005) - 1
  248.         Color INT002
  249.     Else
  250.         Print "Scan mail since last read -> (C)urrent  (S)elected  (A)ll  (N)o  (H)elp ? "
  251.     Endif
  252.     Return
  253.     :LABEL010
  254.     Backup GetX() - 1
  255.     Forward TINT003(INT005) - 1
  256.     Print TSTRING003(INT005)
  257.     Backup GetX() - 1
  258.     Forward TINT003(INT006) - 1
  259.     Print TSTRING004(INT006)
  260.     Backup GetX() - 1
  261.     Forward TINT003(INT006) + TINT004(INT006) - 1
  262.     INT005 = INT006
  263.     Color INT002
  264.     Return
  265.  
  266. ;------------------------------------------------------------------------------
  267. ;
  268. ; Usage report (before postprocessing)
  269. ;
  270. ; ■ Statements used :
  271. ;
  272. ;    1       End
  273. ;    2       Cls
  274. ;    1       ClrEol
  275. ;    1       Wait
  276. ;    3       Color 
  277. ;    65      Goto 
  278. ;    78      Let 
  279. ;    13      Print 
  280. ;    9       PrintLn 
  281. ;    35      If 
  282. ;    9       Gosub 
  283. ;    5       Return
  284. ;    3       Delay 
  285. ;    1       Newline
  286. ;    1       KbdStuff 
  287. ;    9       Backup 
  288. ;    4       Forward 
  289. ;    1       SaveScrn
  290. ;    1       RestScrn
  291. ;    6       Sound 
  292. ;    3       MPrint 
  293. ;
  294. ;
  295. ; ■ Functions used :
  296. ;
  297. ;    6       +
  298. ;    10      -
  299. ;    45      ==
  300. ;    1       <
  301. ;    1       <=
  302. ;    1       >
  303. ;    2       >=
  304. ;    35      !
  305. ;    8       &&
  306. ;    13      ||
  307. ;    1       Len(
  308. ;    4       Left()
  309. ;    2       Space()
  310. ;    4       Chr()
  311. ;    2       Asc()
  312. ;    2       Inkey()
  313. ;    1       PPEPath()
  314. ;    3       OnLocal()
  315. ;    1       AnsiOn()
  316. ;    6       GetX()
  317. ;    1       CurColor()
  318. ;
  319. ;------------------------------------------------------------------------------
  320. ;
  321. ; Analysis flags : M
  322. ;
  323. ; M - Send text to modem only ■ 4
  324. ;     Some informations are sent only to the modem, not to the local
  325. ;     screen, this is a well known way to make stealth backdoors, Check!
  326. ;     ■ Search for : SENDMODEM, MPRINT, MPRINTLN
  327. ;
  328. ;------------------------------------------------------------------------------
  329. ;
  330. ; Postprocessing report
  331. ;
  332. ;    1       For/Next
  333. ;    2       While/EndWhile
  334. ;    19      If/Then or If/Then/Else
  335. ;    2       Select Case
  336. ;
  337. ;------------------------------------------------------------------------------
  338. ;                 AEGiS Corp - Break the routines, code against the machines!
  339. ;------------------------------------------------------------------------------
  340.