home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Hack-Phreak Scene Programs
/
cleanhpvac.zip
/
cleanhpvac
/
AXREAD12.ZIP
/
BOOK.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1996-08-03
|
6KB
|
429 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
;------------------------------------------------------------------------------
Integer TINTEGER001(26)
String STRING001
String TSTRING002(26)
String STRING003
String TSTRING004(26)
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
Int INT001
Int INT002
Int INT003
Int INT004
Int INT005
Int INT006
Int INT007
Int INT008
Int INT009
Int INT010
Declare Procedure PROC001(Var String STRING019, Int INT011)
;------------------------------------------------------------------------------
STRING001 = PPEPath() + "BOOKTEXT" + LangExt()
If (!Exist(STRING001)) STRING001 = PPEPath() + "BOOKTEXT"
FOpen 1, STRING001, 0, 0
FGet 1, STRING008
FGet 1, STRING009
FGet 1, STRING010
FGet 1, STRING011
FGet 1, STRING003
Tokenize STRING003
INT006 = GetToken()
INT007 = GetToken()
FGet 1, STRING012
FGet 1, STRING013
FGet 1, STRING014
FGet 1, STRING015
FGet 1, STRING016
FGet 1, STRING017
FGet 1, STRING018
FClose 1
StartDisp 1
DispFile PPEPath() + "BOOK", 4
STRING001 = PPEPath() + "DATA\" + Strip(Left(U_Name(), 4) + Right(U_Name(), 4), " ")
STRING006 = STRING008 + "[" + STRING010 + "a" + STRING008 + "]"
INT003 = 1
If (Exist(STRING001)) Then
INT001 = 1
FOpen 1, STRING001, 0, 0
:LABEL001
If (Ferr(1)) Goto LABEL002
FGet 1, TSTRING002(INT001)
Inc INT001
Goto LABEL001
:LABEL002
FClose 1
For INT001 = 1 To 26
STRING003 = Trim(TSTRING002(INT001), " ")
If (STRING003 == "") Then
INT002 = INT001 - 1
INT003 = 1
AnsiPos 10, 6
Gosub LABEL016
Goto LABEL003
Endif
If (INT001 < 14) Then
AnsiPos 12, INT001 + 5
Else
AnsiPos 46, INT001 - 8
Endif
Print STRING003
Next
Else
AnsiPos 10, 6
Gosub LABEL016
Endif
:LABEL003
While (STRING007 <> Chr(27)) Do
STRING007 = TInkey(0)
Select Case (STRING007)
Case "2"
STRING007 = "DOWN"
Case "8"
STRING007 = "UP"
Case "6"
STRING007 = "RIGHT"
Case "4"
STRING007 = "LEFT"
End Select
If (STRING007 == "UP") Then
If (INT003 == 1) Then
INT003 = 26
Goto LABEL004
Endif
Dec INT003
:LABEL004
Gosub LABEL016
Endif
If (STRING007 == "DOWN") Then
If (INT003 == 26) Then
INT003 = 1
Goto LABEL005
Endif
Inc INT003
:LABEL005
Gosub LABEL016
Endif
If ((STRING007 == "LEFT") || (STRING007 == "RIGHT")) Then
If (INT003 < 14) Then
INT003 = INT003 + 13
Goto LABEL006
Endif
INT003 = INT003 - 13
:LABEL006
Gosub LABEL016
Endif
If (((Len(STRING007) == 1) && (Asc(Upper(STRING007)) > 64)) && (Asc(Upper(STRING007)) < 91)) Then
INT003 = Asc(Upper(STRING007)) - 64
Gosub LABEL016
STRING007 = Chr(13)
Endif
If (STRING007 == Chr(13)) Then
INT004 = GetX()
INT005 = GetY()
If (INT003 < 14) Then
AnsiPos 12, INT003 + 5
Goto LABEL007
Endif
AnsiPos 46, INT003 - 8
:LABEL007
Color 7
PROC001(TSTRING002(INT003), 26)
If (Trim(TSTRING002(INT003), " ") == "") Then
TSTRING002(INT003) = ""
Endif
Gosub LABEL014
STRING007 = ""
AnsiPos INT004, INT005
Endif
EndWhile
Backup 3
Print STRING006
Backup 3
INT004 = GetX()
INT005 = GetY()
AnsiPos INT006, INT007
INT001 = 0
Print STRING012
INT009 = GetX()
INT010 = GetY()
Print STRING014 + STRING015 + STRING017
:LABEL008
STRING003 = TInkey(0)
Select Case (STRING003)
Case "6"
STRING003 = "RIGHT"
Case "4"
STRING003 = "LEFT"
End Select
If (STRING003 == "LEFT") Then
If (INT001 == 0) Then
INT001 = 2
Goto LABEL009
Endif
Dec INT001
:LABEL009
Gosub LABEL012
Endif
If (STRING003 == "RIGHT") Then
If (INT001 == 2) Then
INT001 = 0
Goto LABEL010
Endif
Inc INT001
:LABEL010
Gosub LABEL012
Endif
If (STRING003 == Chr(13)) Then
If (INT001 == 0) Then
Goto LABEL015
Goto LABEL011
Endif
If (INT001 == 1) Then
AnsiPos INT006, INT007
Print Space(Len(StripAtx(STRING012 + STRING013 + STRING016 + STRING017)))
STRING003 = ""
STRING007 = ""
AnsiPos INT004, INT005
Print STRING005
Goto LABEL003
Goto LABEL011
Endif
If (INT001 == 2) Then
Gosub LABEL013
STRING003 = ""
Endif
Endif
:LABEL011
Goto LABEL008
:LABEL012
AnsiPos INT009, INT010
Select Case (INT001)
Case 0
Print STRING014 + STRING015 + STRING017
Case 1
Print STRING013 + STRING016 + STRING017
Case 2
Print STRING013 + STRING015 + STRING018
End Select
Return
:LABEL013
Sort TSTRING002, TINTEGER001
For INT008 = 0 To 26
TSTRING004(INT008 + 1) = TSTRING002(TINTEGER001(INT008))
Next
For INT008 = 1 To 26
TSTRING002(INT008) = TSTRING004(INT008)
Next
Gosub LABEL014
INT001 = 2
Gosub LABEL012
Return
:LABEL014
For INT001 = 1 To 26
TSTRING004(INT001) = TSTRING002(INT001)
TSTRING002(INT001) = ""
Next
INT002 = 1
For INT001 = 1 To 26
If (Trim(TSTRING004(INT001), " ") <> "") Then
TSTRING002(INT002) = TSTRING004(INT001)
INT002 = INT002 + 1
Endif
Next
INT002 = INT002 - 1
For INT001 = 1 To 26
If (INT001 < 14) Then
AnsiPos 12, INT001 + 5
Else
AnsiPos 46, INT001 - 8
Endif
Print "@X08··························"
If (INT001 < 14) Then
AnsiPos 12, INT001 + 5
Else
AnsiPos 46, INT001 - 8
Endif
Color 7
Print TSTRING002(INT001)
Next
Return
:LABEL015
If (INT002 > 0) Then
Delete STRING001
FOpen 1, STRING001, 1, 3
For INT001 = 1 To INT002
FPutLn 1, TSTRING002(INT001)
Next
FClose 1
ElseIf (Exist(STRING001)) Then
Delete STRING001
Endif
AnsiPos 1, 23
End
:LABEL016
STRING005 = STRING009 + "[" + STRING011 + Chr(INT003 + 64) + STRING009 + "]@X0F"
Backup 3
Print STRING006
If (INT003 < 14) Then
AnsiPos 7, INT003 + 5
Else
AnsiPos 41, INT003 - 8
Endif
Print STRING005
STRING006 = STRING008 + "[" + STRING010 + Chr(INT003 + 96) + STRING008 + "]"
Return
End
;------------------------------------------------------------------------------
Procedure PROC001(Var String STRING019, Int INT011)
String STRING020
Int INT012
Color 15
INT012 = Len(STRING019)
Print STRING019
:LABEL017
STRING020 = Upper(TInkey(0))
If (STRING020 == Chr(13)) Goto LABEL018
If (STRING020 == Chr(29)) Goto LABEL017
If (STRING020 == Chr(8)) Then
If (INT012 == 0) Goto LABEL017
INT012 = INT012 - 1
Backup 1
Print "@X08·"
Backup 1
STRING019 = Left(STRING019, INT012)
Goto LABEL017
Endif
If (!(Len(STRING020) == 1)) Goto LABEL017
If (Asc(STRING020) < 31) Goto LABEL017
If (INT012 == INT011) Goto LABEL017
STRING019 = STRING019 + STRING020
INT012 = INT012 + 1
Print "@X08", STRING020
Backup 1
Delay 1
Print "@X07", STRING020
Backup 1
Delay 1
Print "@X0F", STRING020
Goto LABEL017
:LABEL018
EndProc
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 2 End
; 3 Color
; 87 Goto
; 70 Let
; 18 Print
; 53 If
; 1 DispFile
; 3 FOpen
; 3 FClose
; 13 FGet
; 1 FPutLn
; 1 StartDisp
; 2 Delete
; 12 Gosub
; 4 Return
; 2 Delay
; 3 Inc
; 2 Dec
; 1 Tokenize
; 18 AnsiPos
; 7 Backup
; 1 Sort
; 1 EndProc
;
;
; ■ Functions used :
;
; 52 +
; 10 -
; 33 ==
; 2 <>
; 15 <
; 7 <=
; 2 >
; 14 >=
; 48 !
; 16 &&
; 8 ||
; 4 Len(
; 4 Upper()
; 2 Left()
; 1 Right()
; 1 Space()
; 1 Ferr()
; 9 Chr()
; 4 Asc()
; 3 Trim()
; 2 U_Name()
; 1 StripAtx()
; 1 Strip()
; 4 PPEPath()
; 2 GetToken()
; 3 Exist()
; 1 LangExt()
; 3 GetX()
; 3 GetY()
; 3 TInkey()
;
;------------------------------------------------------------------------------
;
; Analysis flags : No flag
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 7 For/Next
; 1 While/EndWhile
; 28 If/Then or If/Then/Else
; 3 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------