home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carsten's PPE Collection
/
Carstens_PPE_Collection_2007.zip
/
T
/
TLY-PA10.ZIP
/
TLPAGER.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1995-07-15
|
8KB
|
522 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 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
String STRING011
String STRING012
String STRING013
String STRING014
String STRING015
String STRING016
String STRING017
String STRING018
String STRING019
String STRING020
String STRING021
String STRING022
String STRING023
String STRING024
String STRING025
String STRING026
String STRING027
String STRING028
Int INT001
Int INT002
Int INT003
Int INT004
Int INT005
Int INT006
Int INT007
Int INT008
Int INT009
Int INT010
Int INT011
Int INT012
Int INT013
Int INT014
Int INT015
Int INT016
Int INT017
Int INT018
Int INT019
Int INT020
Int INT021
Declare Procedure PROC001()
;------------------------------------------------------------------------------
STRING003 = "HeY DuDe, THaT'S NoT GooD To DeCoMPiLe PPe'S....If iT iS oNLY To"
STRING003 = "CHaNGe CoLoRZ oR STRiNGZ ---> No PRoB, BuT ALWaYS LeT THe CReDZ "
STRING003 = "oF THe AuTHoR aND GRoUP. RiPPiNG iS LaME, So CoNTaCT Me HeRe oN "
STRING003 = "iF Ya HaVe QueSTioNZ : φ FaTaL PeRVeRSioN φ +41-27-431703 ? "
STRING003 = "D/▌RK M00N - TRiLoXY '95 ! "
Cls
GetUser
PROC001()
U_PageLen = 0
PutUser
STRING003 = "───────────────────────────────────────────────────────────────────────────────"
INT020 = 1
INT016 = 1
Log "User " + U_Name() + " enter TLPager v1.0", 1
GetUser
FOpen 1, PPEPath() + "tlpager.cfg", 0, 0
If (Ferr(1) == 1) Goto LABEL001
FGet 1, STRING010
FGet 1, STRING012
FGet 1, STRING013
FGet 1, STRING014
FGet 1, STRING015
FGet 1, STRING016
FGet 1, INT005
FGet 1, INT006
FGet 1, INT007
FGet 1, INT008
FGet 1, INT012
FGet 1, INT001
FGet 1, INT004
FGet 1, INT013
FGet 1, STRING017
FGet 1, STRING005
FGet 1, INT018
FGet 1, STRING018
FGet 1, STRING019
FGet 1, STRING020
FGet 1, STRING021
FGet 1, STRING022
FGet 1, STRING023
FGet 1, STRING011
FGet 1, STRING024
FGet 1, STRING028
FClose 1
FOpen 2, "PCBOARD.SYS", 0, 0
FSeek 2, 4, 0
FRead 2, STRING027, 2
FClose 2
If (STRING027 <> "-1") Then
Log "Page Bell switch off --> paging aborted", 1
Else
If (CurSec() < INT018) Then
Cls
Log "User " + U_Name() + " has a lower security for TLPager v1.0", 1
DispFile PPEPath() + STRING018, 1 + 2 + 4
Wait
Goto LABEL019
Endif
Goto LABEL002
:LABEL001
FClose 1
PrintLn "@X09Sorry, config file missing !!! Please read the Doc !!"
Goto LABEL019
:LABEL002
If (Exist(PPEPath() + STRING012)) DispFile PPEPath() + STRING012, 4 + 2 + 1
PrintLn ""
PrintLn ""
:LABEL003
INT002 = GetY()
DispFile PPEPath() + STRING016, 4 + 2 + 1
INT003 = GetY()
If (Ferr(1) == 1) Goto LABEL019
INT014 = 2
INT010 = INT002
STRING002 = StripAtx(STRING014)
INT015 = (80 - Len(STRING002)) / 2
STRING009 = STRING002
Gosub LABEL008
STRING009 = STRING014
Gosub LABEL007
INT010 = INT003 + 2
INT015 = 0
AnsiPos INT015, INT010
If (Exist(PPEPath() + STRING013)) DispFile PPEPath() + STRING013, 4 + 2 + 1
AnsiPos 20, INT003 + 4
Print "@X0FPre@X08ss@X07 en@X08ter t@X07o p@X0Fage s@X07ysop @X08or E@X0FSC t@X07o ab@X0Fort"
INT010 = INT002 + INT005 - 1
AnsiPos INT006, INT010
INT017 = INT008 - INT006
INT011 = 0
Goto LABEL010
:LABEL004
INT010 = INT003 + 3
INT015 = 18
AnsiPos INT015, INT010
Print "@X07[@X0BReaso@X0Bn too short, enter please a longer one !!@X07]"
Delay 10
INT010 = INT002
INT015 = 0
AnsiPos INT015, INT010
INT016 = 1
Goto LABEL003
:LABEL005
AnsiPos 0, 21
SPrintLn STRING003
SPrintLn "PReSS SPaCe To STaRT THe CHaTTeR oR MaNY TiMeS ESC To FuCK THe uSeR "
INT010 = INT003 + 4
INT009 = (80 - INT012 + 2) / 2
AnsiPos INT009 - 1, INT003 + 6
Print "@X08["
AnsiPos INT009 + INT012 + 1, INT003 + 6
Print "@X08]"
AnsiPos 0, 22
STRING002 = StripAtx(STRING010)
INT021 = 40 - Len(STRING002) / 2
If (KInkey() == " ") Goto LABEL014
If (KInkey() == "") Goto LABEL016
AnsiPos 0, INT010
ClrEol
For INT019 = 0 To INT012
INT015 = INT021
AnsiPos INT015, INT010
If (STRING019 == "YES") Gosub LABEL017
Print STRING010
STRING009 = STRING002
INT020 = 2
INT016 = 1
Delay INT001
Gosub LABEL009
Gosub LABEL006
INT010 = INT003 + 4
If (KInkey() == " ") Goto LABEL014
If (KInkey() == "") Goto LABEL016
Next
Goto LABEL015
:LABEL006
If (KInkey() == " ") Goto LABEL014
If (KInkey() == "") Goto LABEL015
STRING009 = STRING028
INT016 = 1
INT015 = INT009 + INT019
INT010 = INT003 + 6
INT020 = 2
Gosub LABEL008
Return
:LABEL007
AnsiPos INT015, INT010
Print STRING009
Return
:LABEL008
If (INT016 == 1) STRING004 = "@X08"
If (INT016 == 2) STRING004 = "@X07"
If (INT016 == 3) STRING004 = "@X0F"
If (INT016 == 4) STRING004 = "@X08"
If (INT016 == 5) STRING004 = "@X07"
AnsiPos INT015, INT010
If (INT014 == 1) Print STRING004 + STRING003
If (INT014 == 2) Print STRING004 + STRING009
INT016 = INT016 + 1
If (INT016 == 6) Return
Delay INT020
Goto LABEL008
:LABEL009
If (INT016 == 1) STRING004 = "@X0F"
If (INT016 == 2) STRING004 = "@X07"
If (INT016 == 3) STRING004 = "@X08"
AnsiPos INT015, INT010
Print STRING004 + STRING009
INT016 = INT016 + 1
If (INT016 == 4) Then
AnsiPos INT015, INT010
Print Space(Len(STRING002))
Return
Endif
Delay INT020
Goto LABEL009
:LABEL010
STRING006 = Inkey()
If (STRING006 <> "") Goto LABEL011
Goto LABEL010
:LABEL011
If (STRING006 == Chr(27)) Goto LABEL019
If (STRING006 == Chr(13)) Goto LABEL013
If (Left(STRING006, 3) == "ALT") Goto LABEL010
If (Left(STRING006, 3) == "CTR") Goto LABEL010
If (STRING006 == "INS") Goto LABEL010
If (STRING006 == "BADKEY") Goto LABEL010
If (STRING006 == "RIGHT") Goto LABEL010
If (STRING006 == "LEFT") Goto LABEL010
If (STRING006 == "DOWN") Goto LABEL010
If (STRING006 == "DEL") Goto LABEL010
If (STRING006 == "END") Goto LABEL010
If (STRING006 == "HOME") Goto LABEL010
If (STRING006 == "PGDN") Goto LABEL010
If (STRING006 == "PGUP") Goto LABEL010
If (STRING006 <> Chr(8)) Then
Goto LABEL012
Else
INT011 = INT011 - 1
If (INT011 <= -1) Then
INT011 = 0
Goto LABEL010
Else
AnsiPos INT011 + INT006, INT010
Print "·"
AnsiPos INT011 + INT006, INT010
Goto LABEL010
Endif
Endif
:LABEL012
If (INT011 == INT017 + 1) Goto LABEL010
AnsiPos INT011 + INT006, INT010
Print STRING017 + STRING006
INT011 = INT011 + 1
Goto LABEL010
:LABEL013
STRING001 = ScrText(INT006, INT010, INT011, 0)
If (Len(STRING001) >= INT013) Then
Log "Paging reason : " + STRING001, 1
Else
Goto LABEL004
Endif
INT010 = 23
INT015 = 0
AnsiPos INT015, INT010
ClrEol
If (STRING020 == "NO") Goto LABEL005
If (STRING020 == "YES") Goto LABEL000
INT010 = INT003 + 4
AnsiPos 0, INT010
ClrEol
SaveScrn
STRING002 = StripAtx(STRING011)
INT021 = 40 - Len(STRING002) / 2
INT015 = INT021
AnsiPos INT015, INT010
Print STRING011
STRING011 = "@X08THe S@X07YSoP H@X0FaS CHoo@X07SeN@X09 @X0F[@X09" + STRING022 + " SeCoNDS@X0F] @X07aS Pa@X0FGiNG DuRa@X08TioN...@X07PLEaSe@X0F W8!"
STRING002 = StripAtx(STRING011)
INT021 = 40 - Len(STRING002) / 2
INT015 = INT021
AnsiPos INT015, INT010 + 1
Print STRING011
AnsiPos INT015, INT010 + 2
STRING007 = STRING023 + " " + STRING021 + " " + STRING022 + " " + Chr(34) + U_Name() + Chr(34) + " " + I2S(CurSec(), 10) + " " + Chr(34) + STRING001 + Chr(34)
Shell 1, STRING008, "copy " + PPEPath() + "ss3.cfg /Y", " >nul"
Shell 0, STRING008, PPEPath() + "tlplay.exe", STRING007
If (STRING008 == 201) Goto LABEL014
If (STRING008 <> 201) Then
RestScrn
Else
:LABEL014
Cls
DispStr "!" + STRING005
Goto LABEL019
Endif
:LABEL015
INT010 = INT003 + 6
INT015 = 0
AnsiPos INT015, INT010
ClrEol
INT010 = INT003 + 3
INT015 = 28
AnsiPos INT015, INT010
InputStr "@X0FI@X07s @X08it an emergency ", STRING025, 9, 1, "YNyn", 0
If ((STRING025 == "n") || (STRING025 == "N")) Then
Goto LABEL016
Else
Log "Trying to make an emergency page !!", 1
INT010 = INT003 + 2
INT015 = 0
AnsiPos INT015, INT010
If (Exist(PPEPath() + STRING013)) DispFile PPEPath() + STRING013, 4 + 2 + 1
INT010 = INT003 + 3
INT015 = (80 - Len(STRING024) - 29) / 2
AnsiPos INT015, INT010
InputStr "Enter the emergency password ", STRING026, 9, Len(STRING024), Mask_Pwd(), 0
INT010 = INT003 + 2
INT015 = 0
AnsiPos INT015, INT010
If (Exist(PPEPath() + STRING013)) DispFile PPEPath() + STRING013, 4 + 2 + 1
If (STRING026 == STRING024) Then
Log "Correct emergency password !", 1
INT010 = INT003 + 3
INT015 = 22
AnsiPos INT015, INT010
Print "@X08[@X09CoRReCT PaSSWoRD, eMeRGeNCY PaGiNG !@X08]"
If (KInkey() == " ") Goto LABEL014
If (KInkey() == "") Goto LABEL016
For INT019 = 0 To 20
Gosub LABEL018
If (KInkey() == " ") Goto LABEL014
If (KInkey() == "") Goto LABEL016
Next
Goto LABEL016
Else
Log "Incorrect emergency password, User tried : " + STRING026 + " !", 1
INT010 = INT003 + 3
INT015 = 20
AnsiPos INT015, INT010
Print "@X08[@X09iNCoRReCT PaSSWoRD, THiNK BeTTeR NeXT TiME !@X08]"
Goto LABEL016
Endif
Endif
Goto LABEL019
Endif
:LABEL016
Cls
If (Exist(PPEPath() + STRING015)) DispFile PPEPath() + STRING015, 4 + 2 + 1
Wait
Goto LABEL019
:LABEL017
Delay 2
Sound 220
Delay 2
Sound 440
Delay 2
Sound 880
Delay 2
Sound 440
Delay 2
Sound 220
Delay 2
Sound 0
Return
:LABEL018
Delay 2
Sound 220
Delay 2
Sound 880
Delay 2
Sound 765
Delay 2
Sound 320
Delay 2
Sound 217
Delay 2
Sound 0
Return
:LABEL019
U_PageLen = 24
PutUser
Cls
Print "@X08[@X07THaNKS USiNG TLPaGeR V1.0 (C) D/▌Rk M00N TRiLoXY'95@X08]"
End
;------------------------------------------------------------------------------
Procedure PROC001()
EndProc
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 End
; 5 Cls
; 4 ClrEol
; 2 Wait
; 75 Goto
; 86 Let
; 17 Print
; 3 PrintLn
; 59 If
; 7 DispFile
; 2 FOpen
; 3 FClose
; 26 FGet
; 2 GetUser
; 2 PutUser
; 7 Log
; 2 InputStr
; 7 Gosub
; 6 Return
; 16 Delay
; 2 Shell
; 1 DispStr
; 30 AnsiPos
; 1 SaveScrn
; 1 RestScrn
; 12 Sound
; 2 SPrintLn
; 1 FSeek
; 1 FRead
; 1 EndProc
;
;
; ■ Functions used :
;
; 1 -
; 6 /
; 90 +
; 11 -
; 46 ==
; 4 <>
; 3 <
; 3 <=
; 5 >=
; 11 !
; 4 &&
; 3 ||
; 8 Len(
; 2 Left()
; 1 Space()
; 2 Ferr()
; 7 Chr()
; 3 U_Name()
; 4 StripAtx()
; 1 Inkey()
; 1 Mask_Pwd()
; 15 PPEPath()
; 2 CurSec()
; 5 Exist()
; 1 I2S()
; 2 GetY()
; 10 KInkey()
; 1 ScrText()
;
;------------------------------------------------------------------------------
;
; Analysis flags : WS
;
; W - Write user ■ 5
; Program writes a user record. Although this may be normal for a
; User Editor, it may also be a way to modify an account level.
; ■ Search for : PUTUSER
;
; S - Shell to DOS ■ 5
; This may be normal if the PPE need to execute an external command,
; but may be actually anything... nasty (formating HD, rebooting,...)
; or usefull (sorting, maintenance,...). Check!
; ■ Search for : SHELL
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 2 For/Next
; 0 While/EndWhile
; 9 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------