home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
PCBOARD
/
TAPEFLAG.ZIP
/
FLAG30.ZIP
/
FLAG.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1993-12-18
|
3KB
|
309 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 2.OO (plain) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Boolean BOOLEAN002
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
String STRING006
String TSTRING007(23)
String STRING008
String STRING009
Byte BYTE001
Byte BYTE002
Byte BYTE003
;------------------------------------------------------------------------------
If (AnsiOn()) Goto LABEL001
DispFile PPEPath() + "FLAGOLD", 4
End
:LABEL001
STRING003 = Chr(8)
STRING004 = Chr(127)
STRING005 = Chr(13)
STRING006 = Chr(27)
BYTE001 = 0
STRING001 = ""
RestScrn
ClrEol
Gosub LABEL011
Gosub LABEL015
:LABEL002
If (BOOLEAN001) Goto LABEL008
STRING002 = Inkey()
If (STRING002 <> "") Then
If ((BYTE001 == 0) && (STRING002 == " ")) Then
BYTE002 = GetY()
BYTE003 = 0
Print STRING005
ClrEol
Print STRING006 + "[s"
DispFile PPEPath() + "FLAGBAR", 1 + 4
Print STRING005
Gosub LABEL012
If (STRING008 <> "") Then
While (((STRING002 <> STRING006) && (STRING002 <> STRING005)) && (Upper(STRING002) <> "V")) Do
STRING002 = Inkey()
If (STRING002 == " ") Then
Gosub LABEL014
Gosub LABEL012
If (STRING008 == "") Then
Gosub LABEL010
Gosub LABEL011
Goto LABEL007
Endif
Endif
EndWhile
Gosub LABEL014
Gosub LABEL010
If (STRING002 == STRING005) Then
KbdStuff "F " + STRING008 + STRING005
End
Goto LABEL003
Endif
If (Upper(STRING002) == "V") Then
SaveScrn
KbdStuff "V " + STRING008 + STRING005
End
Endif
:LABEL003
Goto LABEL004
Endif
Gosub LABEL010
:LABEL004
Gosub LABEL011
Goto LABEL007
Goto LABEL006
Endif
If ((STRING002 == STRING003) || (STRING002 == STRING004)) Then
If (BYTE001 > 0) Then
Print STRING003 + " "
BYTE001 = BYTE001 - 1
STRING001 = Left(STRING001, BYTE001)
Goto LABEL005
Endif
Goto LABEL007
:LABEL005
Goto LABEL006
Endif
If (STRING002 == STRING005) Then
BOOLEAN001 = 1
Goto LABEL006
Endif
If ((Len(STRING002) > 1) || (STRING002 < " ")) Then
Goto LABEL007
Goto LABEL006
Endif
If ((BYTE001 == 0) && ((STRING002 == "?") || (Upper(STRING002) == "H"))) Then
SaveScrn
Newline
DispFile PPEPath() + "FLAGHLP", 1 + 4
Newline
Wait
RestScrn
Goto LABEL007
Goto LABEL006
Endif
If ((STRING002 >= " ") && (BYTE001 < 80)) Then
STRING001 = STRING001 + STRING002
BYTE001 = BYTE001 + 1
Endif
:LABEL006
Print STRING002
Endif
:LABEL007
Goto LABEL002
:LABEL008
STRING001 = RTrim(STRING001, " ")
If (Upper(Left(STRING001, 1)) == "V") Then
If (Len(STRING001) == 1) Then
ClrEol
STRING008 = ""
PromptStr 240, STRING008, 12, Mask_File(), 2
STRING008 = RTrim(STRING008, " ")
If (Len(STRING008) == 0) Then
ClrEol
KbdStuff STRING005
End
Endif
Newline
STRING001 = "V " + STRING008
SaveScrn
Goto LABEL009
Endif
If (Len(STRING001) >= 3) Then
ClrEol
SaveScrn
Goto LABEL009
Endif
KbdStuff STRING005
End
Endif
:LABEL009
KbdStuff STRING001 + STRING005
End
:LABEL010
Print STRING006 + "[u"
ClrEol
Return
:LABEL011
DispFile PPEPath() + "FLAGNEW", 4
DefColor
Return
:LABEL012
If (BOOLEAN002) Then
BYTE003 = 0
STRING002 = ""
While (BYTE003 == 0) Do
STRING002 = Inkey()
BYTE003 = Asc(STRING002)
If ((BYTE003 >= 129) && (BYTE003 <= 151)) Then
BYTE003 = BYTE003 - 128
If (TSTRING007(BYTE003) <> "") Then
Gosub LABEL013
STRING008 = TSTRING007(BYTE003)
Return
Continue
Endif
BYTE003 = 0
Endif
EndWhile
Else
While (BYTE003 < BYTE002) Do
BYTE003 = BYTE003 + 1
If (TSTRING007(BYTE003) <> "") Then
Gosub LABEL013
STRING008 = TSTRING007(BYTE003)
Return
Endif
EndWhile
Endif
STRING008 = ""
Return
:LABEL013
Print STRING006 + "[u" + STRING006 + "[" + String(BYTE002 - BYTE003) + "A"
STRING009 = ScrText(1, BYTE003, 13, 1)
Color 112
Print TSTRING007(BYTE003) + STRING005
Return
:LABEL014
Print STRING009 + STRING005
Return
:LABEL015
If (GrafMode() == "R") Then
BOOLEAN002 = 1
Endif
BYTE003 = 1
While (BYTE003 > 0) Do
ScrFile BYTE003, STRING008
If (BYTE003 <> 0) Then
TSTRING007(BYTE003) = STRING008
If (BOOLEAN002) Then
MouseReg 0, 1, BYTE003, 13, BYTE003 + 1, 8, 8, 1, 0, " " + Chr(BYTE003 + 128)
Endif
Inc BYTE003
Endif
EndWhile
If (BOOLEAN002) Then
MPrint "!|#|#|#" + STRING005 + Chr(10)
Endif
Return
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 6 End
; 6 ClrEol
; 1 Wait
; 1 Color
; 53 Goto
; 33 Let
; 9 Print
; 31 If
; 4 DispFile
; 1 DefColor
; 13 Gosub
; 8 Return
; 1 PromptStr
; 1 Inc
; 3 Newline
; 5 KbdStuff
; 4 SaveScrn
; 2 RestScrn
; 1 MPrint
; 1 MouseReg
; 1 ScrFile
;
;
; ■ Functions used :
;
; 30 +
; 3 -
; 17 ==
; 8 <>
; 3 <
; 1 <=
; 3 >
; 3 >=
; 31 !
; 6 &&
; 3 ||
; 4 Len(
; 4 Upper()
; 2 Left()
; 6 Chr()
; 1 Asc()
; 2 RTrim()
; 3 Inkey()
; 1 String()
; 1 Mask_File()
; 4 PPEPath()
; 1 AnsiOn()
; 1 GetY()
; 1 GrafMode()
; 1 ScrText()
;
;------------------------------------------------------------------------------
;
; Analysis flags : M
;
; M - Send text to modem only ■ 4
; Some informations are sent only to the modem, not to the local
; screen, this is a well known way to make stealth backdoors, Check!
; ■ Search for : SENDMODEM, MPRINT, MPRINTLN
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 0 For/Next
; 4 While/EndWhile
; 25 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------