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 >
Wrap
PCBoard Programming Language Executable
|
1994-11-14
|
5KB
|
354 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Boolean BOOLEAN002
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
String STRING001
String STRING002
String TSTRING003(4)
String TSTRING004(4)
String TSTRING005(4)
String STRING006
String STRING007
Int INT001
Int INT002
Int TINT003(4)
Int TINT004(4)
Int INT005
Int INT006
Int INT007
Int INT008
;------------------------------------------------------------------------------
BOOLEAN001 = AnsiOn()
If (BOOLEAN001) Then
Gosub LABEL001
Else
Gosub LABEL004
Endif
Newline
KbdStuff STRING001
End
:LABEL001
INT002 = CurColor()
INT007 = 4
TSTRING005(1) = "N"
TSTRING005(2) = "Y"
TSTRING005(3) = "A"
TSTRING005(4) = "H"
TINT004(1) = 1
TINT004(2) = 1
TINT004(3) = 1
TINT004(4) = 1
STRING006 = "@X0ARead new mail now -> "
TSTRING003(1) = "@X0B @X0EN@X0Bo "
TSTRING003(2) = "@X0B @X0EY@X0Bours "
TSTRING003(3) = "@X0B @X0EA@X0Bll "
TSTRING003(4) = "@X0B @X0EH@X0Belp "
TSTRING004(1) = "@X3F @X3EN@X3Fo "
TSTRING004(2) = "@X3F @X3EY@X3Fours "
TSTRING004(3) = "@X3F @X3EA@X3Fll "
TSTRING004(4) = "@X3F @X3EH@X3Felp "
INT005 = 1
INT006 = 1
Gosub LABEL009
:LABEL002
If (INT001 == 13) Goto LABEL003
STRING002 = ""
BOOLEAN002 = 0
Gosub LABEL011
While (STRING002 == "") Do
STRING002 = Inkey()
Gosub LABEL012
If (INTEGER005 >= 20) Then
INT006 = 1
BOOLEAN002 = 1
STRING002 = Chr(13)
Endif
EndWhile
If (Len(STRING002) == 1) Then
INT001 = Asc(STRING002)
Else
INT001 = 0
Endif
If ((Left(STRING002, 5) == "RIGHT") || (INT001 == 32)) Then
INT006 = INT005 + 1
If (INT006 > INT007) Then
INT006 = 1
Endif
BOOLEAN002 = 1
ElseIf ((Left(STRING002, 4) == "LEFT") || (INT001 == 8)) Then
INT006 = INT005 - 1
If (INT006 == 0) Then
INT006 = INT007
Endif
BOOLEAN002 = 1
ElseIf (Left(STRING002, 4) == "HOME") Then
INT006 = 1
BOOLEAN002 = 1
ElseIf (Left(STRING002, 3) == "END") Then
INT006 = INT007
BOOLEAN002 = 1
Else
Select Case (INT001)
Case 110, 78
INT006 = 1
BOOLEAN002 = 1
Case 121, 89
INT006 = 2
BOOLEAN002 = 1
Case 97, 65
INT006 = 3
BOOLEAN002 = 1
Case 104, 72
INT006 = 4
BOOLEAN002 = 1
Case 13
STRING001 = TSTRING005(INT006)
Case
Sound 920
Delay 3
Sound 0
Case Else
MPrint Chr(7)
Endif
End Select
If (BOOLEAN002) Then
Gosub LABEL010
Endif
If ((INT001 == 13) && (INT005 == 4)) Then
Gosub LABEL008
INT006 = 1
Gosub LABEL010
INT001 = 0
Endif
Goto LABEL002
:LABEL003
Color INT002
Return
:LABEL004
Gosub LABEL009
INT001 = 0
:LABEL005
If (INT001 == 13) Goto LABEL007
STRING002 = ""
Gosub LABEL011
While (STRING002 == "") Do
STRING002 = Inkey()
Gosub LABEL012
If (INTEGER005 >= 20) Then
Print "N"
STRING001 = "N"
STRING002 = Chr(13)
Endif
EndWhile
INT001 = Asc(STRING002)
If (((INT001 == 110) || (INT001 == 78)) && (STRING001 == "")) Then
Print "N"
STRING001 = "N"
ElseIf (((INT001 == 121) || (INT001 == 89)) && (STRING001 == "")) Then
Print "Y"
STRING001 = "Y"
ElseIf (((INT001 == 97) || (INT001 == 65)) && (STRING001 == "")) Then
Print "A"
STRING001 = "A"
ElseIf (((INT001 == 104) || (INT001 == 72)) && (STRING001 == "")) Then
Print "H"
STRING001 = "H"
Else
Select Case (INT001)
Case 8
INT001 = 0
If (STRING001 == "") Goto LABEL006
Backup 1
Print Space(1)
Backup 1
STRING001 = ""
:LABEL006
Case 13
If (STRING001 == "H") Then
Backup 1
Print Space(1)
Backup 1
Gosub LABEL008
INT001 = 0
STRING001 = ""
Else
STRING001 = STRING001 + Chr(13)
Endif
Case
Sound 920
Delay 3
Sound 0
Case Else
MPrint Chr(7)
Endif
End Select
Goto LABEL005
:LABEL007
Return
:LABEL008
STRING007 = PPEPath() + "NEWMAIL.HLP"
Backup GetX() - 1
ClrEol
SaveScrn
Cls
PrintLn "@X0ANew Mail Prompt - @X0BUNREGISTERED @X0ACopyright 1994 Data Management Systems"
PrintLn " All Rights Reserved"
PrintLn
PrintLn
PrintLn " @X03Help is available only with the registered version of this software."
PrintLn " Please remind your sysop to register this shareware product (@X02DMSPPE10@X03)."
PrintLn
PrintLn
If (OnLocal()) Then
Sound 920
Delay 3
Sound 0
Else
MPrint Chr(7)
Endif
Wait
Cls
RestScrn
Gosub LABEL009
Return
:LABEL009
If (BOOLEAN001) Then
Print STRING006
For INT008 = 1 To INT007
TINT003(INT008) = GetX()
If (INT008 == INT005) Then
Print TSTRING004(INT008)
Continue
Endif
Print TSTRING003(INT008)
Next
Backup GetX() - 1
Forward TINT003(INT005) + TINT004(INT005) - 1
Color INT002
Else
Print "Read new mail now -> (N)o (Y)ours (A)ll (H)elp ? "
Endif
Return
:LABEL010
Backup GetX() - 1
Forward TINT003(INT005) - 1
Print TSTRING003(INT005)
Backup GetX() - 1
Forward TINT003(INT006) - 1
Print TSTRING004(INT006)
Backup GetX() - 1
Forward TINT003(INT006) + TINT004(INT006) - 1
INT005 = INT006
Color INT002
Return
:LABEL011
INTEGER004 = Date()
INTEGER003 = Time()
Return
:LABEL012
INTEGER001 = Time()
INTEGER002 = Date()
INTEGER005 = INTEGER001 + INTEGER002 * 86400 - INTEGER003 + INTEGER004 * 86400
Return
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 End
; 2 Cls
; 1 ClrEol
; 1 Wait
; 3 Color
; 63 Goto
; 76 Let
; 13 Print
; 8 PrintLn
; 35 If
; 13 Gosub
; 7 Return
; 3 Delay
; 1 Newline
; 1 KbdStuff
; 9 Backup
; 4 Forward
; 1 SaveScrn
; 1 RestScrn
; 6 Sound
; 3 MPrint
;
;
; ■ Functions used :
;
; 2 *
; 8 +
; 11 -
; 40 ==
; 1 <
; 1 <=
; 1 >
; 4 >=
; 35 !
; 7 &&
; 11 ||
; 1 Len(
; 4 Left()
; 2 Space()
; 6 Chr()
; 2 Asc()
; 2 Date()
; 2 Time()
; 2 Inkey()
; 1 PPEPath()
; 3 OnLocal()
; 1 AnsiOn()
; 6 GetX()
; 1 CurColor()
;
;------------------------------------------------------------------------------
;
; Analysis flags : M
;
; M - Send text to modem only ■ 4
; Some informations are sent only to the modem, not to the local
; screen, this is a well known way to make stealth backdoors, Check!
; ■ Search for : SENDMODEM, MPRINT, MPRINTLN
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 1 For/Next
; 2 While/EndWhile
; 20 If/Then or If/Then/Else
; 2 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------