home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carsten's PPE Collection
/
Carstens_PPE_Collection_2007.zip
/
S
/
SDE-ZI11.ZIP
/
SDE-ZL.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1995-12-30
|
5KB
|
394 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 BOOLEAN001
Boolean BOOLEAN002
Boolean BOOLEAN003
Boolean BOOLEAN004
Boolean BOOLEAN005
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER009
Integer INTEGER016
Integer INTEGER017
String TSTRING001(10)
String STRING002
String STRING003
String STRING004
String STRING009
String STRING010
String STRING011
String STRING012
String STRING013
String STRING014
String STRING015
String STRING016
Byte BYTE001
Int INT001
Int INT002
Int INT003
Declare Function FUNCTION001() Integer
Declare Function FUNCTION002(String STRING005, String STRING006, String STRING007, String STRING008) String
Declare Function FUNCTION003(Integer INTEGER006, Integer INTEGER007, Integer INTEGER008) String
Declare Procedure PROC001(Integer INTEGER010)
Declare Procedure PROC002(Integer INTEGER011)
Declare Procedure PROC003(Integer INTEGER012, Integer INTEGER013, Integer INTEGER014, Integer INTEGER015)
Declare Procedure PROC004()
Declare Procedure PROC005()
Declare Procedure PROC006()
Declare Procedure PROC007()
Declare Procedure PROC008()
;------------------------------------------------------------------------------
If (Len(LastAns()) <= 2) Then
PROC008()
STRING002 = "Z "
If (Left(Upper(LastAns()), 1) == "L") STRING002 = "L "
PROC007()
Print "@X0B"
STRING003 = FUNCTION003(17, 6, 44)
If (STRING003 <> "") Then
STRING004 = ""
Cls
If (TSTRING001(0) == "ALL") Join 1
If (TSTRING001(1) == "ON ") STRING004 = " D"
If (TSTRING001(2) == "ON ") STRING004 = STRING004 + " NS"
KbdStuff STRING002 + STRING003 + " A" + STRING004 + Chr(13)
Else
Cls
PrintLn FUNCTION002("ZIPPY SCAN/LOCATE DONE BY STEAM/SDE ANSI BY OBI^WAN/SDE. ", "@X05", "@X0D", "@X0F")
PrintLn FUNCTION002("ABORTED ...", "@X08", "@X07", "@X0F")
Newline
Endif
Else
KbdStuff LastAns()
Endif
End
;------------------------------------------------------------------------------
Procedure PROC006()
BOOLEAN002 = 0
While (BOOLEAN002 == 0) Do
INT001 = FUNCTION001()
If (INT001 == 99) Then
BOOLEAN002 = 1
Endif
EndWhile
EndProc
;------------------------------------------------------------------------------
Function FUNCTION002(String STRING005, String STRING006, String STRING007, String STRING008) String
String STRING010
String STRING011
Int INT002
Int INT003
Integer INTEGER006
INT003 = 0
STRING010 = ""
For INT002 = 1 To Len(STRING005)
STRING011 = Mid(STRING005, INT002, 1)
If (STRING011 <> " ") Then
If (INT003 == 0) Then
STRING010 = STRING010 + STRING006
Goto LABEL001
Endif
If (INT003 == 1) Then
STRING010 = STRING010 + STRING007
Goto LABEL001
Endif
If (INT003 == 2) Then
STRING010 = STRING010 + STRING008
Endif
:LABEL001
Inc INT003
STRING010 = STRING010 + STRING011
Continue
Endif
STRING010 = STRING010 + STRING011
INT003 = 0
Next
FUNCTION002 = STRING010
EndFunc
;------------------------------------------------------------------------------
Function FUNCTION003(Integer INTEGER006, Integer INTEGER007, Integer INTEGER008) String
String STRING013
String STRING014
Integer INTEGER009
Boolean BOOLEAN004
BOOLEAN003 = 0
AnsiPos INTEGER006, INTEGER007
STRING013 = ""
BOOLEAN004 = 0
While (BOOLEAN004 == 0) Do
STRING014 = Inkey()
INTEGER009 = Asc(STRING014)
If ((((((STRING014 <> "DOWN") && (STRING014 <> "UP")) && (STRING014 <> "LEFT")) && (STRING014 <> "RIGHT")) && (INTEGER009 <> 9)) && (INTEGER009 <> 27)) Then
If (INTEGER009 == 13) Then
BOOLEAN004 = 1
Goto LABEL002
Endif
If (INTEGER009 == 8) Then
If (Len(STRING013) > 0) Then
STRING013 = Mid(STRING013, 1, Len(STRING013) - 1)
Print STRING014 + "@X0F·@X0B" + STRING014
Endif
Goto LABEL002
Endif
If (Len(STRING013) < INTEGER008) Then
STRING013 = STRING013 + STRING014
If (STRING014 == " ") Then
Print "@X0F·@X0B"
Goto LABEL002
Endif
Print STRING014
Endif
:LABEL002
Continue
Endif
If (INTEGER009 == 9) Then
PROC006()
PROC003(75, 12, 3, 2)
Print "@X0B"
AnsiPos INTEGER006 + Len(STRING013), INTEGER007
Endif
If (INTEGER009 == 27) Then
BOOLEAN004 = 1
BOOLEAN003 = 1
Endif
EndWhile
FUNCTION003 = STRING013
EndFunc
;------------------------------------------------------------------------------
Procedure PROC007()
Cls
StartDisp 1
If (STRING002 == "Z ") Then
DispFile PPEPath() + "zippyscn.pcb", 1
Else
DispFile PPEPath() + "locate.pcb", 1
Endif
PROC003(75, 12, 3, 2)
EndProc
;------------------------------------------------------------------------------
Procedure PROC008()
TSTRING001(0) = "ALL"
TSTRING001(1) = "OFF"
TSTRING001(2) = "OFF"
TSTRING001(3) = " "
TSTRING001(4) = "CUR"
TSTRING001(5) = "ON "
TSTRING001(6) = "ON "
TSTRING001(7) = " "
EndProc
;------------------------------------------------------------------------------
Procedure PROC001(Integer INTEGER010)
AnsiPos INTEGER002, INTEGER003 + INTEGER010
Print "@X05" + TSTRING001(INTEGER010) + Space(INTEGER004 - Len(TSTRING001(INTEGER010)))
EndProc
;------------------------------------------------------------------------------
Procedure PROC002(Integer INTEGER011)
AnsiPos INTEGER002, INTEGER003 + INTEGER011
Print "@X1F" + Upper(TSTRING001(INTEGER011)) + Space(INTEGER004 - Len(TSTRING001(INTEGER011))) + "@X07"
EndProc
;------------------------------------------------------------------------------
Procedure PROC003(Integer INTEGER012, Integer INTEGER013, Integer INTEGER014, Integer INTEGER015)
Integer INTEGER016
INTEGER002 = INTEGER012
INTEGER003 = INTEGER013
INTEGER004 = INTEGER014
INTEGER005 = INTEGER015 + 1
For INTEGER016 = 0 To INTEGER015
AnsiPos INTEGER012, INTEGER013 + INTEGER016
Print "@X05" + TSTRING001(INTEGER016)
Next
INTEGER001 = 0
EndProc
;------------------------------------------------------------------------------
Procedure PROC004()
PROC001(INTEGER001)
INTEGER001 = (INTEGER001 + 1) % INTEGER005
PROC002(INTEGER001)
EndProc
;------------------------------------------------------------------------------
Procedure PROC005()
PROC001(INTEGER001)
INTEGER001 = (INTEGER001 - 1 + INTEGER005) % INTEGER005
PROC002(INTEGER001)
EndProc
;------------------------------------------------------------------------------
Function FUNCTION001() Integer
String STRING015
String STRING016
Byte BYTE001
Boolean BOOLEAN005
PROC002(INTEGER001)
BOOLEAN001 = 1
BOOLEAN005 = 0
While (BOOLEAN005 == 0) Do
STRING015 = Inkey()
BYTE001 = Asc(STRING015)
If (BYTE001 == 13) Then
STRING016 = TSTRING001(INTEGER001)
TSTRING001(INTEGER001) = TSTRING001(INTEGER001 + 4)
TSTRING001(INTEGER001 + 4) = STRING016
PROC002(INTEGER001)
Continue
Endif
If ((BYTE001 == 27) || (BYTE001 == 9)) Then
BOOLEAN005 = 1
INTEGER001 = 99
Continue
Endif
If ((BYTE001 == 68) || (BYTE001 == 122)) Then
PROC004()
Continue
Endif
If ((BYTE001 == 85) || (BYTE001 == 97)) Then
PROC005()
Endif
EndWhile
FUNCTION001 = INTEGER001
EndFunc
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 End
; 3 Cls
; 44 Goto
; 59 Let
; 8 Print
; 2 PrintLn
; 29 If
; 2 DispFile
; 1 StartDisp
; 1 Inc
; 1 Newline
; 2 KbdStuff
; 1 Join
; 5 AnsiPos
; 8 EndProc
; 3 EndFunc
;
;
; ■ Functions used :
;
; 2 %
; 32 +
; 4 -
; 24 ==
; 8 <>
; 3 <
; 3 <=
; 1 >
; 4 >=
; 25 !
; 9 &&
; 5 ||
; 9 Len(
; 2 Upper()
; 2 Mid()
; 1 Left()
; 2 Space()
; 1 Chr()
; 2 Asc()
; 2 Inkey()
; 2 PPEPath()
; 3 LastAns()
;
;------------------------------------------------------------------------------
;
; Analysis flags : No flag
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 2 For/Next
; 3 While/EndWhile
; 20 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------