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