home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carsten's PPE Collection
/
Carstens_PPE_Collection_2007.zip
/
T
/
TURBO10.ZIP
/
TURBLOG.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1995-01-13
|
6KB
|
430 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
;------------------------------------------------------------------------------
Boolean TBOOLEAN001(250)
Boolean TBOOLEAN002(250)
Boolean BOOLEAN003
Boolean BOOLEAN004
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
String STRING001
String STRING002
String TSTRING003(250)
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
Declare Procedure PROC001()
Declare Procedure PROC002()
Declare Procedure PROC003()
Declare Procedure PROC004()
Declare Procedure PROC005()
Declare Procedure PROC006()
Declare Procedure PROC007()
;------------------------------------------------------------------------------
Goto LABEL001
End
;------------------------------------------------------------------------------
Procedure PROC001()
String STRING018
String STRING019
String STRING020
String STRING021
String STRING022
String STRING023
String STRING024
Integer INTEGER006
STRING023 = Left(STRING016, 8)
Tokenize STRING023
If (TokCount() > 1) Then
STRING024 = GetToken() + "_"
STRING024 = STRING024 + GetToken()
STRING023 = Left(STRING024, 8)
Endif
FOpen 1, PPEPath() + STRING023 + ".KEY", 0, 0
FGet 1, STRING022
FGet 1, STRING018
FGet 1, STRING022
FGet 1, STRING019
FGet 1, STRING022
FClose 1
BOOLEAN004 = 1
For INTEGER006 = 1 To Len(STRING018)
STRING020 = STRING020 + Chr(Mid(STRING018, INTEGER006 * 3, 3) - 185)
Next
If (STRING020 <> STRING017) BOOLEAN004 = 0
For INTEGER006 = 1 To Len(STRING019)
STRING021 = STRING021 + Chr(Mid(STRING019, INTEGER006 * 3, 3) - 606)
Next
If (STRING021 <> STRING016) BOOLEAN004 = 0
EndProc
:LABEL001
STRING017 = "TURBO"
PROC003()
PROC001()
PROC002()
PROC005()
End
;------------------------------------------------------------------------------
Procedure PROC002()
If ((Upper(STRING005) == "YES") && (CurSec() < INTEGER003)) Then
PROC004()
Goto LABEL002
Endif
Print STRING001
If (Upper((STRING007 == "YES"))) Then
PROC007()
Goto LABEL002
Endif
Print " " + STRING002
While ((STRING004 == "")) STRING004 = Inkey()
If (Lower(STRING004) == "n") Then
PROC004()
Else
PROC006()
Endif
:LABEL002
EndProc
;------------------------------------------------------------------------------
Procedure PROC007()
INTEGER004 = GetY()
INTEGER005 = GetX()
STRING014 = " " + STRING009 + STRING012 + STRING010 + " " + STRING011 + " " + STRING013
STRING015 = " " + STRING010 + STRING012 + " " + STRING011 + " " + STRING009 + STRING013
STRING008 = STRING014
BOOLEAN003 = 1
KbdFlush
:LABEL003
STRING004 = ""
AnsiPos INTEGER005, INTEGER004
Print STRING008
While ((STRING004 == "")) STRING004 = Inkey()
If (Asc(STRING004) == 13) Then
Goto LABEL005
ElseIf ((STRING004 == "RIGHT") || (STRING004 == "LEFT")) Then
If ((BOOLEAN003 == 1) && (STRING004 == "RIGHT")) Then
STRING008 = STRING015
BOOLEAN003 = 0
Goto LABEL004
Endif
If ((BOOLEAN003 == 0) && (STRING004 == "LEFT")) Then
STRING008 = STRING014
BOOLEAN003 = 1
Endif
Endif
:LABEL004
Goto LABEL003
:LABEL005
If (BOOLEAN003) Then
PROC006()
Else
PROC004()
Endif
EndProc
;------------------------------------------------------------------------------
Procedure PROC003()
FOpen 1, PPEPath() + PPEName() + ".CNF", 0, 0
FGet 1, STRING016
STRING016 = Upper(STRING016)
If (STRING016 <> ReadLine(PCBDat(), 2)) Then
PrintLn "@X8C SYSOPNAME WRONG@X07 "
End
Endif
FGet 1, STRING001
FGet 1, STRING002
FGet 1, STRING005
FGet 1, INTEGER003
FGet 1, STRING007
FGet 1, STRING009
FGet 1, STRING010
FGet 1, STRING011
FGet 1, STRING012
FGet 1, STRING013
FGet 1, INTEGER001
If (INTEGER001 == 0) Goto LABEL006
For INTEGER002 = 1 To INTEGER001
FGet 1, STRING006
Tokenize STRING006
TBOOLEAN001(INTEGER002) = 0
TBOOLEAN002(INTEGER002) = 0
If (GetToken() == "F") TBOOLEAN001(INTEGER002) = 1
TSTRING003(INTEGER002) = GetToken()
If (InStr(TSTRING003(INTEGER002), "\") > 0) TBOOLEAN002(INTEGER002) = 1
Next
:LABEL006
FClose 1
EndProc
;------------------------------------------------------------------------------
Procedure PROC004()
Print "@X0B"
If (INTEGER001 == 0) Goto LABEL008
For INTEGER002 = 1 To INTEGER001
If (TBOOLEAN002(INTEGER002) == 1) Goto LABEL007
Call PPEPath() + TSTRING003(INTEGER002)
Continue
:LABEL007
Call TSTRING003(INTEGER002)
Next
:LABEL008
EndProc
;------------------------------------------------------------------------------
Procedure PROC006()
If (INTEGER001 == 0) Goto LABEL010
For INTEGER002 = 1 To INTEGER001
If (TBOOLEAN001(INTEGER002)) Then
If (TBOOLEAN002(INTEGER002) == 1) Goto LABEL009
Call PPEPath() + TSTRING003(INTEGER002)
Continue
:LABEL009
Call TSTRING003(INTEGER002)
Endif
Next
:LABEL010
EndProc
;------------------------------------------------------------------------------
Procedure PROC005()
Cls
AnsiPos 1, 1
PrintLn "@X09T@X0FuRBo @X09L@X0FoG@X0Di@X0F@X0FN v 1.0 "
PrintLn "@X09C@X0FoDeD @X09B@X0FY @X09A@X0FbDo / @X09L@X0Di@X0FQU@X0Di@X0FD @X09I@X0FN 1995"
If (BOOLEAN004 == 0) Then
AnsiPos 30, 12
Print " @X08 E R E @X07D"
Delay 2
AnsiPos 30, 12
Print " @X08 T E R @X07E @X0FD"
Delay 2
AnsiPos 30, 12
Print " @X08 S T E @X07R@X0F E @X0BD"
Delay 2
AnsiPos 30, 12
Print " @X08 I S T @X07E @X0FR @X0BE @X0FD"
Delay 2
AnsiPos 30, 12
Print " @X08 G I S @X07T @X0FE @X0BR @X0FE @X07D"
Delay 2
AnsiPos 30, 12
Print " @X08 E G I@X07 S @X0FT @X0BE @X0FR @X07E @X08D"
Delay 2
AnsiPos 30, 12
Print " @X08 R E G @X07I @X0FS @X0BT @X0FE @X07R @X08E D"
Delay 2
AnsiPos 30, 12
Print "@X08 N R E@X07 G@X0F I@X0B S@X0F T@X07 E@X0F @X08R E D"
Delay 2
AnsiPos 30, 12
Print "@X08U N R@X07 E@X0F G@X0B I@X0F S@X07 T @X08E R E D"
Delay 2
AnsiPos 30, 12
Print "@X08U N @X07R@X0F E@X0B G@X0F I@X07 @X07S @X08T E R E D"
Delay 2
AnsiPos 30, 12
Print "@X08U @X07N @X0FR @X0BE @X0FG@X07 I @X08S T E R E D"
Delay 2
AnsiPos 30, 12
Print "@X07U @X0FN @X0BR @X0FE @X07G @X08I S T E R E D"
Delay 2
AnsiPos 30, 12
Print "@X08U @X07N @X0FR @X0BE @X0FG@X07 I @X08S T E R E D"
Delay 1
AnsiPos 30, 12
Print "@X08U N @X07R@X0F E@X0B G@X0F I@X07 @X07S @X08T E R E D"
Delay 1
AnsiPos 30, 12
Print "@X08U N R@X07 E@X0F G@X0B I@X0F S@X07 T @X08E R E D"
Delay 1
AnsiPos 30, 12
Print "@X08U N R E@X07 G@X0F I@X0B S@X0F T@X07 E@X0F @X08R E D"
Delay 1
AnsiPos 30, 12
Print "@X08U N R E G @X07I @X0FS @X0BT @X0FE @X07R @X08E D"
Delay 1
AnsiPos 30, 12
Print "@X08U N R E G I@X07 S @X0FT @X0BE @X0FR @X07E @X08D"
Delay 1
AnsiPos 30, 12
Print "@X08U N R E G I S @X07T @X0FE @X0BR @X0FE @X07D"
Delay 1
AnsiPos 30, 12
Print "@X08U N R E G I S T @X07E @X0FR @X0BE @X0FD"
Delay 1
AnsiPos 30, 12
Print "@X08U N R E G I S T E @X07R@X0F E @X0BD"
Delay 1
AnsiPos 30, 12
Print "@X08U N R E G I S T E R @X07E @X0FD"
Delay 1
AnsiPos 30, 12
Print "@X08U N R E G I S T E R E @X07D"
Delay 1
AnsiPos 30, 12
Print "@X08U N R E G I S T E R E D"
Delay 1
Else
AnsiPos 1, 1
PrintLn "@X09T@X0FuRBo @X09L@X0FoG@X0Di@X0F@X0FN v 1.0 @X09R@X0FeG@X0Di@X0FSTeReD @X09T@X0Fo " + STRING016
PrintLn "@X09C@X0FoDeD @X09B@X0FY @X09A@X0FbDo / @X09L@X0Di@X0FQU@X0Di@X0FD @X09I@X0FN 1995"
Delay 2
Endif
EndProc
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 3 End
; 1 Cls
; 41 Goto
; 39 Let
; 28 Print
; 5 PrintLn
; 28 If
; 2 FOpen
; 2 FClose
; 18 FGet
; 25 Delay
; 2 Tokenize
; 4 Call
; 27 AnsiPos
; 1 KbdFlush
; 7 EndProc
;
;
; ■ Functions used :
;
; 2 *
; 31 +
; 2 -
; 19 ==
; 3 <>
; 6 <
; 5 <=
; 2 >
; 10 >=
; 22 !
; 13 &&
; 6 ||
; 4 Len(
; 1 Lower()
; 3 Upper()
; 2 Mid()
; 2 Left()
; 2 Chr()
; 1 Asc()
; 1 InStr()
; 2 Inkey()
; 1 PCBDat()
; 4 PPEPath()
; 1 ReadLine()
; 1 CurSec()
; 4 GetToken()
; 1 GetX()
; 1 GetY()
; 1 PPEName()
; 1 TokCount()
;
;------------------------------------------------------------------------------
;
; Analysis flags : Cd
;
; C - Call child PPE ■ 3
; This is usually normal, but may be a tricky way to launch some
; sysop-only commands.
; ■ Search for : CALL
;
; d - Access PCBOARD.DAT ■ 2
; Program gets the full pathname to PCBOARD.DAT, this may be usefull
; for many PPE so they can find various informations on the system
; (system paths, max number of lines in messages, ...) but it may also
; be a way to gather vital informations.
; ■ Search for : PCBDAT()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 5 For/Next
; 0 While/EndWhile
; 12 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------