home *** CD-ROM | disk | FTP | other *** search
/ The Pier Shareware 6 / The_Pier_Shareware_Number_6_(The_Pier_Exchange)_(1995).iso / 005 / dmsppe1a.zip / SCANMAIL.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-11-14  |  5KB  |  339 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 Data Management Systems"
  215.     PrintLn "                                                            All Rights Reserved"
  216.     PrintLn 
  217.     PrintLn 
  218.     PrintLn "     @X03Help is available only with the registered version of this software."
  219.     PrintLn "     Please remind your sysop to register this shareware product (@X02DMSPPE10@X03)."
  220.     PrintLn 
  221.     PrintLn 
  222.     If (OnLocal()) Then
  223.         Sound 920
  224.         Delay 3
  225.         Sound 0
  226.     Else
  227.         MPrint Chr(7)
  228.     Endif
  229.     Wait
  230.     Cls
  231.     RestScrn
  232.     Gosub LABEL009
  233.     Return
  234.     :LABEL009
  235.     If (BOOLEAN001) Then
  236.         Print STRING007
  237.         For INT008 = 1 To INT007
  238.             TINT003(INT008) = GetX()
  239.             If (INT008 == INT005) Then
  240.                 Print TSTRING004(INT008)
  241.                 Continue
  242.             Endif
  243.             Print TSTRING003(INT008)
  244.         Next
  245.         Backup GetX() - 1
  246.         Forward TINT003(INT005) + TINT004(INT005) - 1
  247.         Color INT002
  248.     Else
  249.         Print "Scan mail since last read -> (C)urrent  (S)elected  (A)ll  (N)o  (H)elp ? "
  250.     Endif
  251.     Return
  252.     :LABEL010
  253.     Backup GetX() - 1
  254.     Forward TINT003(INT005) - 1
  255.     Print TSTRING003(INT005)
  256.     Backup GetX() - 1
  257.     Forward TINT003(INT006) - 1
  258.     Print TSTRING004(INT006)
  259.     Backup GetX() - 1
  260.     Forward TINT003(INT006) + TINT004(INT006) - 1
  261.     INT005 = INT006
  262.     Color INT002
  263.     Return
  264.  
  265. ;------------------------------------------------------------------------------
  266. ;
  267. ; Usage report (before postprocessing)
  268. ;
  269. ; ■ Statements used :
  270. ;
  271. ;    1       End
  272. ;    2       Cls
  273. ;    1       ClrEol
  274. ;    1       Wait
  275. ;    3       Color 
  276. ;    65      Goto 
  277. ;    78      Let 
  278. ;    13      Print 
  279. ;    8       PrintLn 
  280. ;    35      If 
  281. ;    9       Gosub 
  282. ;    5       Return
  283. ;    3       Delay 
  284. ;    1       Newline
  285. ;    1       KbdStuff 
  286. ;    9       Backup 
  287. ;    4       Forward 
  288. ;    1       SaveScrn
  289. ;    1       RestScrn
  290. ;    6       Sound 
  291. ;    3       MPrint 
  292. ;
  293. ;
  294. ; ■ Functions used :
  295. ;
  296. ;    6       +
  297. ;    10      -
  298. ;    45      ==
  299. ;    1       <
  300. ;    1       <=
  301. ;    1       >
  302. ;    2       >=
  303. ;    35      !
  304. ;    8       &&
  305. ;    13      ||
  306. ;    1       Len(
  307. ;    4       Left()
  308. ;    2       Space()
  309. ;    4       Chr()
  310. ;    2       Asc()
  311. ;    2       Inkey()
  312. ;    1       PPEPath()
  313. ;    3       OnLocal()
  314. ;    1       AnsiOn()
  315. ;    6       GetX()
  316. ;    1       CurColor()
  317. ;
  318. ;------------------------------------------------------------------------------
  319. ;
  320. ; Analysis flags : M
  321. ;
  322. ; M - Send text to modem only ■ 4
  323. ;     Some informations are sent only to the modem, not to the local
  324. ;     screen, this is a well known way to make stealth backdoors, Check!
  325. ;     ■ Search for : SENDMODEM, MPRINT, MPRINTLN
  326. ;
  327. ;------------------------------------------------------------------------------
  328. ;
  329. ; Postprocessing report
  330. ;
  331. ;    1       For/Next
  332. ;    2       While/EndWhile
  333. ;    19      If/Then or If/Then/Else
  334. ;    2       Select Case
  335. ;
  336. ;------------------------------------------------------------------------------
  337. ;                 AEGiS Corp - Break the routines, code against the machines!
  338. ;------------------------------------------------------------------------------
  339.