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