home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.wwiv.com
/
ftp.wwiv.com.zip
/
ftp.wwiv.com
/
pub
/
BBS
/
ACD_AG20.ZIP
/
ART.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-11-23
|
9KB
|
570 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
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
Integer INTEGER011
Integer INTEGER012
Integer INTEGER013
Integer INTEGER014
Integer INTEGER015
Integer INTEGER016
String TSTRING001(180)
String TSTRING002(180)
String TSTRING003(180)
String TSTRING004(180)
String TSTRING005(180)
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 TSTRING019(2)
String STRING020
String STRING021
String STRING022
String STRING023
String STRING024
String STRING025
String STRING026
String STRING027
String STRING028
String STRING029
String STRING030
String STRING031
String TSTRING032(2)
String STRING033
String STRING034
String STRING035
String STRING036
String STRING037
String STRING038
String STRING039
String STRING040
String STRING041
String STRING042
;------------------------------------------------------------------------------
Cls
TSTRING019(1) = "Art Gallery PPE v2.O "
TSTRING019(2) = "Copyright (C) 1994 Dark Creation [ACiDic]"
Color 3
If (Carrier() > 2400) Then
For INTEGER007 = 1 To 41
AnsiPos 1, 1
Print Right(TSTRING019(1), INTEGER007)
AnsiPos 1, 2
Print Right(TSTRING019(2), INTEGER007)
Next
AnsiPos 1, 1
Print "@X0BA"
AnsiPos 1, 2
Print "@X0BC"
Else
AnsiPos 1, 1
Print TSTRING019(1)
AnsiPos 1, 2
Print TSTRING019(2)
AnsiPos 1, 1
Print "@X0BA"
AnsiPos 1, 2
Print "@X0BC"
Endif
Color 7
SPrintLn ""
SPrintLn ""
SPrintLn "SYSOP: To add ANSi locally, press Alt+A in the menu"
Newline
Newline
Wait
FOpen 1, PPEPath() + "ART.CFG", 0, 0
FGet 1, STRING020
FGet 1, STRING009
FGet 1, STRING010
FGet 1, INTEGER015
FGet 1, STRING006
FGet 1, STRING007
FGet 1, STRING008
FGet 1, INTEGER005
FGet 1, INTEGER011
FGet 1, INTEGER012
FGet 1, INTEGER013
FGet 1, INTEGER014
FGet 1, STRING011
FGet 1, STRING012
FGet 1, STRING013
FGet 1, STRING014
FGet 1, STRING015
FGet 1, STRING016
FGet 1, INTEGER002
FGet 1, INTEGER003
FGet 1, INTEGER004
FGet 1, STRING017
FGet 1, STRING025
FGet 1, STRING026
FGet 1, STRING029
FGet 1, STRING028
FGet 1, STRING027
FGet 1, STRING030
FGet 1, INTEGER001
FGet 1, STRING031
FGet 1, TSTRING032(1)
FGet 1, TSTRING032(2)
FGet 1, STRING034
FGet 1, STRING035
FClose 1
:LABEL001
Cls
FOpen 2, PPEPath() + "ART.DAT", 0, 0
:LABEL002
If (BOOLEAN001) Goto LABEL003
INTEGER009 = INTEGER009 + 1
FGet 2, TSTRING001(INTEGER009)
FGet 2, TSTRING002(INTEGER009)
FGet 2, TSTRING003(INTEGER009)
FGet 2, TSTRING004(INTEGER009)
FGet 2, TSTRING005(INTEGER009)
If (TSTRING001(INTEGER009) == "") Then
BOOLEAN001 = 1
INTEGER009 = INTEGER009 - 1
For INTEGER007 = 1 To 9
TSTRING002(INTEGER007 + INTEGER009) = Space(INTEGER002)
TSTRING003(INTEGER007 + INTEGER009) = Space(INTEGER003)
TSTRING004(INTEGER007 + INTEGER009) = Space(INTEGER004)
Next
Endif
Goto LABEL002
:LABEL003
BOOLEAN001 = 0
FClose 2
INTEGER010 = INTEGER011
INTEGER008 = 9
:LABEL004
DispFile PPEPath() + "ART.PCB", 1
AnsiPos INTEGER015, INTEGER010
Print STRING009, STRING010
AnsiPos Left(STRING011, 2), Right(STRING011, 2)
Select Case (BOOLEAN002)
Case 0
Print STRING012, "OFF"
Case 1
Print STRING012, "ON "
End Select
:LABEL005
For INTEGER007 = 1 To INTEGER005
AnsiPos INTEGER012, INTEGER011 + INTEGER007 - 1
Print STRING006, TSTRING002(INTEGER007 + INTEGER008 - 9)
AnsiPos INTEGER013, INTEGER011 + INTEGER007 - 1
Print STRING007, TSTRING003(INTEGER007 + INTEGER008 - 9)
AnsiPos INTEGER014, INTEGER011 + INTEGER007 - 1
Print STRING008, TSTRING004(INTEGER007 + INTEGER008 - 9), " "
Next
AnsiPos INTEGER015, INTEGER010
:LABEL006
If (BOOLEAN001) Goto LABEL007
STRING018 = Upper(Inkey())
STRING042 = Upper(KInkey())
If (STRING042 == "ALT A") Then
Gosub LABEL020
Endif
Select Case (STRING018)
Case "UP", "A"
Gosub LABEL007
Case "DOWN", "Z"
Gosub LABEL008
Case "F"
Gosub LABEL014
Case "U"
Gosub LABEL015
Case Chr(13)
Gosub LABEL009
Case "N"
Goto LABEL013
Case "E", Chr(27)
Goto LABEL021
Case "H"
Gosub LABEL011
Case "M"
Gosub LABEL012
End Select
Goto LABEL006
:LABEL007
INTEGER010 = INTEGER010 - 1
If (INTEGER010 < INTEGER011) Then
INTEGER010 = INTEGER011
Endif
AnsiPos INTEGER015, INTEGER010 + 1
Print "@X07 "
AnsiPos INTEGER015, INTEGER010
Print STRING009, STRING010
AnsiPos INTEGER015, INTEGER010
Return
:LABEL008
INTEGER010 = INTEGER010 + 1
If (INTEGER010 > INTEGER011 + INTEGER005 - 1) Then
INTEGER010 = INTEGER011 + INTEGER005 - 1
Endif
AnsiPos INTEGER015, INTEGER010 - 1
Print "@X07 "
AnsiPos INTEGER015, INTEGER010
Print STRING009, STRING010
AnsiPos INTEGER015, INTEGER010
Return
:LABEL009
INTEGER006 = INTEGER010 - INTEGER011 + INTEGER008 - 9 + 1
If (Exist(PPEPath() + "ART\" + TSTRING001(INTEGER006))) Goto LABEL010
Return
:LABEL010
Cls
If (BOOLEAN002 == 0) Then
Print "@POFF@"
Else
Print "@PON@"
Endif
DispFile PPEPath() + "ART\" + TSTRING001(INTEGER006), 1
Newline
Newline
PrintLn TSTRING032(1), "Filename: ", TSTRING032(2), TSTRING001(INTEGER006)
PrintLn TSTRING032(1), "Artist: ", TSTRING032(2), TSTRING002(INTEGER006)
PrintLn TSTRING032(1), "Group: ", TSTRING032(2), TSTRING003(INTEGER006)
PrintLn TSTRING032(1), "Description: ", TSTRING032(2), TSTRING004(INTEGER006)
PrintLn TSTRING032(1), "Uploaded by: ", TSTRING032(2), TSTRING005(INTEGER006)
TSTRING001(INTEGER006) = Strip(TSTRING001(INTEGER006), " ")
Copy PPEPath() + "ART\" + TSTRING001(INTEGER006), PPEPath() + "ART\TEMP.!!!"
PrintLn TSTRING032(1), "File size: ", TSTRING032(2), FileInf(PPEPath() + "ART\TEMP.!!!", 4)
Delete PPEPath() + "ART\TEMP.!!!"
Wait
Goto LABEL004
:LABEL011
Cls
DispFile PPEPath() + "HELP.PCB", 1
Wait
Goto LABEL004
:LABEL012
AnsiPos Left(STRING011, 2), Right(STRING011, 2)
Select Case (BOOLEAN002)
Case 1
Print STRING012, "OFF"
BOOLEAN002 = 0
Case 0
Print STRING012, "ON "
BOOLEAN002 = 1
End Select
AnsiPos INTEGER015, INTEGER010
Return
:LABEL013
INTEGER008 = INTEGER008 + 9
If (INTEGER008 > INTEGER009 + 8) Then
INTEGER008 = 9
Endif
AnsiPos INTEGER015, INTEGER010
Print "@X07 "
INTEGER010 = INTEGER011
AnsiPos INTEGER015, INTEGER010
Print STRING009, STRING010
Goto LABEL005
:LABEL014
INTEGER006 = INTEGER010 - INTEGER011 + INTEGER008 - 9 + 1
If (Exist(PPEPath() + "ART\" + TSTRING001(INTEGER006))) Then
Flag PPEPath() + "ART\" + TSTRING001(INTEGER006)
AnsiPos INTEGER015, INTEGER010
Print STRING020, STRING010
Delay 9
AnsiPos INTEGER015, INTEGER010
Print STRING009, STRING010
Endif
Return
:LABEL015
Cls
Newline
If (CurSec() < INTEGER001) Then
Print STRING031
Newline
Newline
Wait
Goto LABEL004
Endif
InputStr STRING013 + "_", STRING021, 7, 12, Mask_File(), 2 + 8
FreshLine
For INTEGER007 = 1 To INTEGER009
If (Upper(STRING021) == TSTRING001(INTEGER007)) Then
Beep
Newline
PrintLn STRING025
PrintLn STRING026, " ", TSTRING004(INTEGER007)
Newline
Wait
Goto LABEL004
Endif
Next
InputStr STRING014 + "_", STRING022, 7, INTEGER002, Mask_Ascii(), 2
Newline
InputStr STRING015 + "_", STRING023, 7, INTEGER003, Mask_Ascii(), 2
Newline
InputStr STRING016 + "_", STRING024, 7, INTEGER004, Mask_Ascii(), 2
If ((((STRING021 == "") || (STRING022 == "")) || (STRING023 == "")) || (STRING024 == "")) Then
Newline
PrintLn STRING028
Newline
Newline
Wait
Else
Cls
PrintLn STRING029, STRING021
Shell 1, INTEGER007, PPEPath() + "DSZ", "port " + Mid(ReadLine(PCBDat(), 52), 4, 1) + " rz " + STRING030
If (Exist(STRING030 + STRING021)) Goto LABEL016
Print STRING028
Newline
Newline
Wait
Goto LABEL019
:LABEL016
Copy STRING030 + STRING021, PPEPath() + "ART\" + STRING021
Delete STRING030 + STRING021
FAppend 5, PPEPath() + "ART\" + STRING021, 2, 0
FPutLn 5, "Downloaded from: Art Gallery PPE v2.O [Dark Creation ∙ ACiDic]"
Frewind 5
BOOLEAN001 = 0
:LABEL017
If (BOOLEAN001) Goto LABEL018
FGet 5, STRING033
Select Case (Left(STRING033, 1))
Case "%"
INTEGER016 = 1
BOOLEAN001 = 1
Case "!"
INTEGER016 = 1
BOOLEAN001 = 1
Case "Downloaded from: Art Gallery"
INTEGER016 = 0
BOOLEAN001 = 1
End Select
Goto LABEL017
:LABEL018
FClose 5
Select Case (INTEGER016)
Case 0
Print STRING027
Case 1
Print STRING034
FOpen 4, PPEPath() + "HMSG", 2, 0
FPutLn 4, "Art Gallery v2.O has found a user who is possibly trying to hack your system."
FPutLn 4, ""
FPutLn 4, "At ", Time(), " on ", Date(), " ", U_Name(), " uploaded an Ansi"
FPutLn 4, "with the following line to the Art Gallery:"
FPutLn 4, ""
FPutLn 4, STRING033
FPutLn 4, ""
FPutLn 4, "The filename of this Ansi is " + PPEPath() + "ART\" + STRING021
FClose 4
Message 1, STRING035, "Art Gallery v2.O", "Possible Hacker", "R", 0, 0, 0, PPEPath() + "HMSG"
Delete PPEPath() + "HMSG"
End
End Select
Newline
Newline
Wait
FAppend 1, PPEPath() + "ART.DAT", 2, 0
FPutLn 1, Upper(STRING021)
FPutLn 1, STRING022 + Space(INTEGER002 - Len(STRING022))
FPutLn 1, STRING023 + Space(INTEGER003 - Len(STRING023))
FPutLn 1, STRING024 + Space(INTEGER004 - Len(STRING024))
FPutLn 1, U_Name()
FClose 1
Endif
:LABEL019
INTEGER009 = 0
Goto LABEL001
:LABEL020
Cls
Newline
PrintLn "@X0FLocally uploading ANSi to the Art Gallery"
PrintLn "@X07[Art Gallery PPE v2.O - Dark Creation ∙ ACiDic]"
PrintLn ""
STRING040 = "Darky"
InputStr "@X0FPATH @X07of local file:_", STRING041, 7, 60, Mask_File(), 2 + 8
Newline
InputStr "@X0FNAME @X07of local file:_", STRING036, 7, 12, Mask_Ascii(), 2
Newline
InputStr "@X0FARTIST @X07of this Ansi:_", STRING037, 7, INTEGER002, Mask_Ascii(), 2
Newline
InputStr "@X0FGROUP @X07this Artist is in:_", STRING038, 7, INTEGER003, Mask_Ascii(), 2
Newline
InputStr "@X0FDESCRIPTION @X07of Ansi:_", STRING039, 7, INTEGER004, Mask_Ascii(), 2
Newline
InputStr "@X0FUPLOADER @X07of this file:_", STRING040, 7, 30, Mask_Ascii(), 2
Newline
If ((((((STRING041 == "") || (STRING036 == "")) || (STRING037 == "")) || (STRING038 == "")) || (STRING039 == "")) || (STRING040 == "")) Then
Newline
PrintLn STRING028
Newline
Newline
Wait
Else
If (Right(STRING041, 1) <> "\") Then
STRING041 = STRING041 + "\"
Endif
Copy STRING041 + STRING036, PPEPath() + "ART\" + STRING036
FAppend 1, PPEPath() + "ART.DAT", 2, 0
FPutLn 1, Upper(STRING036)
FPutLn 1, STRING037 + Space(INTEGER002 - Len(STRING037))
FPutLn 1, STRING038 + Space(INTEGER003 - Len(STRING038))
FPutLn 1, STRING039 + Space(INTEGER004 - Len(STRING039))
FPutLn 1, Mixed(STRING040)
FClose 1
Newline
PrintLn "@X0F" + Upper(STRING041) + Upper(STRING036) + "@X07 successfully added."
Newline
Wait
Endif
INTEGER009 = 0
Goto LABEL001
:LABEL021
Cls
End
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 2 End
; 8 Cls
; 10 Wait
; 2 Color
; 74 Goto
; 44 Let
; 30 Print
; 15 PrintLn
; 40 If
; 3 DispFile
; 3 FOpen
; 3 FAppend
; 6 FClose
; 40 FGet
; 19 FPutLn
; 3 Delete
; 10 InputStr
; 8 Gosub
; 5 Return
; 1 Delay
; 30 Newline
; 1 Shell
; 1 Beep
; 26 AnsiPos
; 1 FreshLine
; 1 Message
; 3 SPrintLn
; 1 Frewind
; 3 Copy
; 1 Flag
;
;
; ■ Functions used :
;
; 79 +
; 21 -
; 35 ==
; 1 <>
; 6 <
; 4 <=
; 3 >
; 8 >=
; 40 !
; 8 &&
; 15 ||
; 6 Len(
; 7 Upper()
; 1 Mid()
; 5 Left()
; 5 Right()
; 9 Space()
; 2 Chr()
; 1 Date()
; 1 Time()
; 2 U_Name()
; 1 Strip()
; 1 Inkey()
; 2 Mask_File()
; 8 Mask_Ascii()
; 1 PCBDat()
; 22 PPEPath()
; 1 ReadLine()
; 1 CurSec()
; 3 Exist()
; 1 Carrier()
; 1 FileInf()
; 1 KInkey()
; 1 Mixed()
;
;------------------------------------------------------------------------------
;
; Analysis flags : Sfd
;
; S - Shell to DOS ■ 5
; This may be normal if the PPE need to execute an external command,
; but may be actually anything... nasty (formating HD, rebooting,...)
; or usefull (sorting, maintenance,...). Check!
; ■ Search for : SHELL
;
; f - Flag files for download ■ 3
; This may be normal if a PPE needs to send some files, but since
; this statement allows flagging of any file on the hard disk, you
; have to be carefull. Check!
; ■ Search for : FLAG
;
; 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
;
; 4 For/Next
; 0 While/EndWhile
; 13 If/Then or If/Then/Else
; 5 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------