home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carsten's PPE Collection
/
Carstens_PPE_Collection_2007.zip
/
T
/
TRX-ADDB.ZIP
/
BBS!.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1997-06-08
|
7KB
|
388 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.2O (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
String TSTRING001(3)
String TSTRING002(10)
String TSTRING003(3)
String TSTRING004(2)
String STRING005
String TSTRING006(7)
;------------------------------------------------------------------------------
BOOLEAN001 = 0
TSTRING001(0) = "70"
TSTRING001(1) = "7F"
TSTRING001(2) = "78"
TSTRING001(3) = "77"
TSTRING006(0) = "=)"
TSTRING006(1) = "=I"
TSTRING006(2) = "=("
TSTRING006(3) = "="
TSTRING006(4) = ":"
TSTRING006(5) = "|"
TSTRING006(6) = ":"
TSTRING006(7) = "="
TSTRING002(0) = "@X07 @X70 @X08"
TSTRING002(1) = "@X07 @X70 @X7F @X78%%%@X70 bBS^aDDER @X78%%% @X70 @X08"
TSTRING002(2) = TSTRING002(0)
TSTRING002(7) = TSTRING002(0)
TSTRING002(8) = TSTRING002(0)
TSTRING002(10) = TSTRING002(0)
TSTRING002(3) = "@X07 @X70 bOARd^nAME @X78[....................] oO @X08"
TSTRING002(4) = "@X07 @X70 bOARd^fONE @X78[...............] \/ @X08"
TSTRING002(5) = "@X07 @X70 wORk^hOURS @X78[...........] @X08"
TSTRING002(6) = "@X07 @X70 bOARd^sOFt @X78[...........]@X70 eNtER^yOUR^nFO @X08"
TSTRING002(9) = "@X07 @X70 @X7FaRROWS@X70^mOVE @X7FESC@X70^oPtIONS pAINLESs^tOX @X08"
Cls
GetUser
If (U_Sec >= ReadLine(PPEPath() + "bbs!.-", 2)) Goto LABEL002
Gosub LABEL024
TSTRING002(5) = "@X07 @X70 @X7FsORRY^mAN, yOU^hAVE^vERY^@X70lOW^aXX@X7F^tO^uSE^iT @X08"
:LABEL001
Gosub LABEL023
AnsiPos 0, 20
Wait
End
:LABEL002
INTEGER001 = 3
:LABEL003
STRING005 = ReadLine(PPEPath() + "bbs!.-", INTEGER001)
If (STRING005 == "") Goto LABEL005
If (Upper(U_Name()) == Upper(STRING005)) Goto LABEL004
Inc INTEGER001
Goto LABEL003
:LABEL004
Cls
Gosub LABEL024
TSTRING002(5) = "@X07 @X70 @X7FsORRY^mAN, yOUR^nAME^iS^@X70bLACKlISTEd @X08"
Goto LABEL001
:LABEL005
TSTRING004(0) = " save^this "
TSTRING004(1) = " oops!back "
TSTRING004(2) = " abort^dis "
Gosub LABEL023
:LABEL006
AnsiPos 33 + Len(TSTRING003(INTEGER002)), 8 + INTEGER002
Select Case (INTEGER002)
Case 0
INTEGER003 = 20
Case 1
INTEGER003 = 15
Case Else
INTEGER003 = 11
End Select
INTEGER001 = 0
:LABEL007
STRING005 = Inkey()
If (STRING005 == "") Then
INTEGER001 = INTEGER001 + 1
If (INTEGER001 < Random(1) * 5000 + 2000) Goto LABEL010
If (BOOLEAN001 == 0) Then
STRING005 = "O"
Goto LABEL008
Endif
STRING005 = "R"
:LABEL008
INTEGER004 = GetX()
INTEGER005 = GetY()
For INTEGER001 = 0 To 3
AnsiPos 59, 14
Print "@X" + TSTRING001(INTEGER001) + STRING005
AnsiPos INTEGER004, INTEGER005
Delay 4
Next
If (BOOLEAN001 == 0) Then
STRING005 = "R"
Goto LABEL009
Endif
STRING005 = "O"
:LABEL009
INTEGER001 = 3
While (INTEGER001 >= 0) Do
AnsiPos 59, 14
Print "@X" + TSTRING001(INTEGER001) + STRING005
AnsiPos INTEGER004, INTEGER005
Delay 4
Dec INTEGER001
EndWhile
BOOLEAN001 = !BOOLEAN001
AnsiPos INTEGER004, INTEGER005
Goto LABEL007
:LABEL010
If (STRING005 == "") Goto LABEL007
Endif
If (STRING005 == "UP") Then
Dec INTEGER002
If (INTEGER002 < 0) INTEGER002 = 3
Goto LABEL006
Endif
If (STRING005 == Chr(13)) Then
If (INTEGER002 == 3) Then
Goto LABEL013
Goto LABEL011
Endif
STRING005 = "DOWN"
Endif
:LABEL011
If (STRING005 == "DOWN") Then
Inc INTEGER002
If (INTEGER002 > 3) INTEGER002 = 0
Goto LABEL006
Endif
If (STRING005 == Chr(27)) Goto LABEL013
If (STRING005 == Chr(8)) Then
If (Len(TSTRING003(INTEGER002)) == 0) Then
Goto LABEL007
Goto LABEL012
Endif
TSTRING003(INTEGER002) = Left(TSTRING003(INTEGER002), Len(TSTRING003(INTEGER002)) - 1)
Print Chr(8), "@X78.", Chr(8)
Goto LABEL007
Endif
:LABEL012
If (Len(STRING005) > 1) Goto LABEL007
If (STRING005 < " ") Goto LABEL007
If (Len(TSTRING003(INTEGER002)) == INTEGER003) Goto LABEL007
TSTRING003(INTEGER002) = TSTRING003(INTEGER002) + STRING005
If (STRING005 == " ") STRING005 = "@X78."
Print "@X79", STRING005
Goto LABEL007
:LABEL013
AnsiPos 22, 18
Print "@X08["
AnsiPos 60, 18
Print "]"
Color 0
Print "▄"
Color 8
STRING005 = TSTRING004(0) + TSTRING004(1) + TSTRING004(2)
INTEGER003 = Len(STRING005) / 2
For INTEGER001 = 0 To INTEGER003 + 1
AnsiPos 40 - INTEGER001, 18
Print Mid(STRING005, INTEGER003 - INTEGER001, INTEGER001 * 2)
Next
For INTEGER001 = 1 To 11
AnsiPos 24 + INTEGER001, 18
Print "@X7F" + Upper(Mid(TSTRING004(0), INTEGER001, 1))
Next
INTEGER002 = 0
:LABEL014
AnsiPos 62, 18
Print "@X0F" + TSTRING006(INTEGER002)
AnsiPos 18, 18
Print "@X0F" + TSTRING006(INTEGER002)
Color 8
AnsiPos 61, 18
:LABEL015
STRING005 = Inkey()
If (STRING005 == "") Goto LABEL015
If (STRING005 == "LEFT") Then
If (INTEGER002 > 0) Goto LABEL017
Endif
If (STRING005 == "RIGHT") Then
If (INTEGER002 < 2) Goto LABEL016
Endif
If (STRING005 == Chr(13)) Goto LABEL018
Goto LABEL014
:LABEL016
For INTEGER001 = 1 To 11
AnsiPos 25 + 11 * INTEGER002, 18
Color 8
Print Lower(Left(TSTRING004(INTEGER002), INTEGER001))
AnsiPos 36 + 11 * INTEGER002, 18
Print "@X7F" + Upper(Left(TSTRING004(INTEGER002 + 1), INTEGER001))
Next
Inc INTEGER002
Goto LABEL014
:LABEL017
For INTEGER001 = 1 To 11
AnsiPos 36 + 11 * INTEGER002 - INTEGER001, 18
Color 8
Print Lower(Right(TSTRING004(INTEGER002), INTEGER001))
AnsiPos 25 + 11 * INTEGER002 - INTEGER001, 18
Print "@X7F" + Upper(Right(TSTRING004(INTEGER002 - 1), INTEGER001))
Next
Dec INTEGER002
Goto LABEL014
:LABEL018
For INTEGER001 = 3 To 7
AnsiPos 62, 18
Print "@X0F" + TSTRING006(INTEGER001)
AnsiPos 18, 18
Print "@X0F" + TSTRING006(INTEGER001)
AnsiPos 61, 18
Delay 2
Next
Color 8
Gosub LABEL021
Select Case (INTEGER002)
Case 0
If (TSTRING003(0) + TSTRING003(1) + TSTRING003(2) + TSTRING003(3) == "") Goto LABEL019
For INTEGER001 = 0 To 3
If (TSTRING003(INTEGER001) == "") Then
INTEGER002 = INTEGER001
Goto LABEL006
Endif
Next
STRING005 = " @X0Bs@X03AV@X08ING^@X0Bb@X03OA@X08RD^@X0Bn@X03FO @X08[@X03...........................@X08]"
Gosub LABEL022
For INTEGER001 = 1 To 27
AnsiPos 35 + INTEGER001, 18
Color 15
Print "■"
Delay 1
Next
FAppend 1, ReadLine(PPEPath() + "bbs!.-", 1), 2, 3
FPutLn 1, "@X03@POS:8@" + TSTRING003(0) + "@X08@POS:30@@X08" + TSTRING003(1) + "@POS:48@" + TSTRING003(2) + "@POS:62@" + TSTRING003(3)
FClose 1
Gosub LABEL021
STRING005 = "@X0Ab@X02BS@X08^@X0Ae@X02NT@X08Ry^@X0Aa@X02DD@X08ed^@X0A!@X02!!"
Gosub LABEL022
Goto LABEL020
Case 1
INTEGER002 = 0
Goto LABEL006
Case Else
:LABEL019
STRING005 = "@X0Cb@X04BS@X08^@X0Ce@X04NT@X08Ry^@X0Ca@X04BO@X08RTed^@X0C!@X04!!"
Gosub LABEL022
:LABEL020
AnsiPos 0, 20
Wait
End
End Select
:LABEL021
For INTEGER001 = 0 To 23
AnsiPos 40 + INTEGER001, 18
Print " "
AnsiPos 40 - INTEGER001, 18
Print " "
Next
Return
:LABEL022
For INTEGER001 = 0 To 2
AnsiPos 40 - Len(StripAtx(STRING005)) / 2, 18
Color (INTEGER001 == 0) * 8 + (INTEGER001 == 1) * 7 + (INTEGER001 == 2) * 15
Print StripAtx(STRING005)
Delay 1
Next
AnsiPos 40 - Len(StripAtx(STRING005)) / 2, 18
Print STRING005
Return
:LABEL023
AnsiPos 0, 10
Print TSTRING002(5)
For INTEGER001 = 1 To 5
Delay 1
AnsiPos 0, 10 - INTEGER001
Print TSTRING002(5 - INTEGER001)
AnsiPos 0, 10 + INTEGER001
Print TSTRING002(5 + INTEGER001)
Next
Return
:LABEL024
TSTRING002(2) = TSTRING002(0)
TSTRING002(3) = TSTRING002(0)
TSTRING002(4) = TSTRING002(0)
TSTRING002(6) = TSTRING002(0)
TSTRING002(7) = TSTRING002(0)
TSTRING002(8) = TSTRING002(0)
TSTRING002(9) = "@X07 @X70 dONE^bY pAINLESs^tOX @X08"
TSTRING002(10) = TSTRING002(0)
Return
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 2 End
; 2 Cls
; 2 Wait
; 8 Color
; 77 Goto
; 90 Let
; 25 Print
; 45 If
; 1 FAppend
; 1 FClose
; 1 FPutLn
; 1 GetUser
; 9 Gosub
; 4 Return
; 6 Delay
; 3 Inc
; 3 Dec
; 30 AnsiPos
;
;
; ■ Functions used :
;
; 9 *
; 3 /
; 56 +
; 11 -
; 28 ==
; 15 <
; 11 <=
; 3 >
; 24 >=
; 29 !
; 22 &&
; 11 ||
; 8 Len(
; 2 Lower()
; 5 Upper()
; 2 Mid()
; 3 Left()
; 2 Right()
; 6 Chr()
; 1 Random()
; 1 U_Name()
; 3 StripAtx()
; 2 Inkey()
; 3 PPEPath()
; 3 ReadLine()
; 1 GetX()
; 1 GetY()
;
;------------------------------------------------------------------------------
;
; Analysis flags : No flag
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 11 For/Next
; 1 While/EndWhile
; 12 If/Then or If/Then/Else
; 2 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------