home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
PCBOARD
/
RP_MT10B.ZIP
/
DOS.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-03-08
|
11KB
|
725 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
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer TINTEGER009(3)
Integer TINTEGER010(3)
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
String TSTRING006(12)
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 STRING019
String STRING020
String STRING021
String STRING022
String STRING023
String TSTRING024(200)
String STRING025
String STRING026
String STRING027
String STRING028
String STRING029
String STRING030
String STRING031
String STRING032
String STRING033
String STRING034
String STRING035
String TSTRING036(1)
String STRING037
String STRING038
String STRING039
String STRING040
String STRING041
String STRING042
String STRING043
String STRING044
;------------------------------------------------------------------------------
TSTRING006(1) = PPEPath() + "ANSI\LAMER"
TSTRING006(2) = PPEPath() + "ANSI\DIR"
TSTRING006(3) = PPEPath() + "ANSI\SYS-PASS"
TSTRING006(4) = PPEPath() + "ANSI\NUP-PASS"
TSTRING006(5) = PPEPath() + "ANSI\FEEDBACK"
TSTRING006(6) = PPEPath() + "ANSI\GOODBYE"
TSTRING006(7) = PPEPath() + "ANSI\DIRW"
TSTRING006(8) = PPEPath() + "ANSI\PRELOGON"
TSTRING006(9) = PPEPath() + "ANSI\NUP-BAD"
TSTRING006(10) = PPEPath() + "ANSI\SYS-BAD"
TSTRING006(11) = PPEPath() + "ANSI\NEWUSER"
TSTRING006(12) = PPEPath() + "ANSI\CHECK"
KbdChkOff
If (Exist(PPEPath() + "DOS.CNF") == 0) Then
FCreate 1, PPEPath() + "DOS.CNF", 1, 0
FPutLn 1, "@X07C:\PCB> _"
FPutLn 1, "@X07C:\PCB\NUV> _"
FPutLn 1, "NUV"
FPutLn 1, "NUVW"
FPut 1, "YES"
FClose 1
Log "RiPE MaTRiX v1.0α written by WHiTE TiGER had an error!", 0
Log "DOS.CNF file not found so it was created using defaults!", 0
Endif
FOpen 1, PPEPath() + "DOS.CNF", 0, 0
FGet 1, STRING001
FGet 1, STRING002
FGet 1, STRING003
FGet 1, STRING004
FGet 1, STRING005
FClose 1
If (Exist(PPEPath() + "CMDS.DOS") == 0) Then
FCreate 1, PPEPath() + "CMDS.DOS", 1, 0
FPutLn 1, "SYSTEM"
FPutLn 1, "APPLY"
FPutLn 1, "INFO"
FPutLn 1, "FEEDBACK"
FPutLn 1, "CHECK"
FPutLn 1, "LOGOFF"
FPutLn 1, "UPLOAD"
FPut 1, "WHO"
FClose 1
Log "RiPE MaTRiX v1.0α written by WHiTE TiGER had an error!", 0
Log "CMDS.DOS file not found so it was created using defaults!", 0
Endif
FOpen 1, PPEPath() + "CMDS.DOS", 0, 0
FGet 1, STRING007
FGet 1, STRING008
FGet 1, STRING009
FGet 1, STRING010
FGet 1, STRING011
FGet 1, STRING012
FGet 1, STRING014
FGet 1, STRING013
FClose 1
STRING015 = ReadLine(PPEPath() + "MATRIX.CNF", 4)
STRING016 = ReadLine(PPEPath() + "MATRIX.CNF", 5)
STRING017 = ReadLine(PPEPath() + "MATRIX.CNF", 6)
STRING018 = ReadLine(PPEPath() + "MATRIX.CNF", 7)
STRING019 = ReadLine(PPEPath() + "MATRIX.CNF", 8)
INTEGER002 = ReadLine(PPEPath() + "MATRIX.CNF", 9)
STRING020 = ReadLine(PPEPath() + "MATRIX.CNF", 10)
STRING021 = ReadLine(PPEPath() + "MATRIX.CNF", 11)
STRING022 = ReadLine(PPEPath() + "MATRIX.CNF", 12)
If (Upper(STRING022) == "YES") Then
STRING023 = ReadLine(PPEPath() + "matrix.cnf", 13)
Endif
FOpen 1, PPEPath() + "STRINGS.CFG", 0, 0
FGet 1, STRING025
FGet 1, STRING026
FGet 1, STRING037
FGet 1, STRING038
FGet 1, STRING027
FGet 1, STRING028
FGet 1, STRING029
FGet 1, STRING030
FGet 1, STRING031
FGet 1, STRING032
FGet 1, STRING033
FClose 1
If (Upper(STRING016) == "YES") Then
FOpen 1, PPEPath() + "SYSPASS.CFG", 0, 0
FGet 1, INTEGER005
FGet 1, INTEGER006
FGet 1, STRING034
FClose 1
Endif
If (Upper(STRING018) == "YES") Then
FOpen 1, PPEPath() + "NUPPASS.CFG", 0, 0
FGet 1, INTEGER007
FGet 1, INTEGER008
FGet 1, STRING035
FClose 1
Endif
If (Upper(STRING019) == "YES") Then
FOpen 1, PPEPath() + "CHECK.CFG", 0, 0
FGet 1, TINTEGER009(1)
FGet 1, TINTEGER010(1)
FGet 1, TINTEGER009(2)
FGet 1, TINTEGER010(2)
FGet 1, TINTEGER009(3)
FGet 1, TINTEGER010(3)
FGet 1, TSTRING036(1)
FClose 1
Endif
Gosub LABEL001
Goto LABEL002
:LABEL001
PrintLn "@X03RiPE MaTRiX (R) PCBoard Version 1.o BeTa"
PrintLn "@X03 (C)CopySlapped By ReBeLS iN PuRe eFFeCT 199?"
PrintLn "@X03 CoDeD for PCB v15.1 By: WHiTE TiGER [RiPE∙/∙CYaNiDe∙/∙SuCK]"
Return
:LABEL002
STRING039 = ""
STRING043 = " 0123456789!@#$%^&*()-=_+`~qwertyuiop[]\|asdfghjkl;'zxcvbnm,./<>?:{}QWERTYUIOPASDFGHJKLZXCVBNM═"
If (BOOLEAN001 == 1) Then
PrintLn "@X07Bad command or file name"
PrintLn
Endif
PrintLn
InputStr STRING001, STRING039, 7, 20, STRING043, 8 + 4096
PrintLn
Select Case (STRING039)
Case "FORMAT C:"
BOOLEAN001 = 0
PrintLn
PrintLn "Warning All Data on Drive C will be erased!"
Print "Continue? "
InputYN "@X07[Y/N] _", STRING044, 7
If (Upper(STRING044) == "Y") Then
If (Upper(STRING005) == "YES") Then
If (Exist(TSTRING006(2))) Then
DispFile TSTRING006(2), 1 + 4
Wait
Hangup
Goto LABEL003
Endif
PrintLn
PrintLn "DRIVE C: TOASTED"
PrintLn
PrintLn "@X0CWe do not need Lamers Like you around...cya"
PrintLn
PrintLn "@X0D(+++ATH1)"
Hangup
Goto LABEL022
:LABEL003
Goto LABEL004
Endif
Goto LABEL002
Endif
:LABEL004
If (STRING039 == "CD DOORS") Then
BOOLEAN001 = 0
Gosub LABEL020
Endif
If (STRING039 == "COMMAND") Then
BOOLEAN001 = 0
Gosub LABEL001
Goto LABEL002
Endif
If (STRING039 == "VER") Then
BOOLEAN001 = 0
PrintLn
PrintLn "@X08R@X07iP@X0FE MaTRiX v1@X07.o@X08 BeTa"
PrintLn "@X08C@X07oDeD B@X0FY: WHiTE TiGER [RiPE∙/∙CYaNiDe∙/@X07∙SuCK@X08]"
PrintLn "@X08P@X07iR@X0FaTeD iN 1994 Bi@X07TC@X08H"
PrintLn
Goto LABEL002
Endif
If (STRING039 == "DIR") Then
BOOLEAN001 = 0
If (Exist(TSTRING006(2))) DispFile TSTRING006(2) , 1 + 4
Goto LABEL002
Endif
If (STRING039 == "DIR /P") Then
BOOLEAN001 = 0
If (Exist(TSTRING006(2))) DispFile TSTRING006(2) , 1 + 4
Goto LABEL002
Endif
If (STRING039 == "DIR /W") Then
BOOLEAN001 = 0
If (Exist(TSTRING006(7))) DispFile TSTRING006(7) , 1 + 4
Goto LABEL002
Endif
If (STRING039 == Upper(STRING007)) Then
BOOLEAN001 = 0
If (STRING016 == "69") Then
Goto LABEL022
Endif
If (Upper(STRING016) == "YES") Then
If (Exist(TSTRING006(3))) DispFile TSTRING006(3) , 1 + 4
AnsiPos INTEGER005, INTEGER006
InputStr "_", STRING041, STRING034, 60, STRING043, 8 + 1 + 4096
If (STRING041 == Upper(STRING015)) Then
If (Exist(TSTRING006(8))) Then
DispFile TSTRING006(8), 1 + 4
Wait
Goto LABEL022
Endif
Goto LABEL005
Endif
If (Exist(TSTRING006(10))) Then
DispFile TSTRING006(10), 1 + 4
Wait
Goto LABEL002
Goto LABEL005
Endif
Cls
PrintLn STRING026
PrintLn
Wait
Goto LABEL002
:LABEL005
Goto LABEL006
Endif
If (Upper(STRING016) == "NO") Then
Print "@X07"
Cls
InputStr STRING025, STRING041, STRING034, 60, STRING043, 8 + 1 + 4096
If (STRING041 == Upper(STRING015)) Then
If (Exist(TSTRING006(8))) Then
DispFile TSTRING006(8), 1 + 4
Wait
Endif
Goto LABEL022
Goto LABEL006
Endif
If (Exist(TSTRING006(10))) Then
DispFile TSTRING006(10), 1 + 4
Wait
Goto LABEL002
Goto LABEL006
Endif
Cls
PrintLn STRING026
PrintLn
Wait
Goto LABEL002
Endif
Endif
:LABEL006
If (STRING039 == Upper(STRING011)) Then
BOOLEAN001 = 0
If (Upper(STRING019) == "YES") Then
If (Exist(TSTRING006(12))) DispFile TSTRING006(12) , 1 + 4
AnsiPos TINTEGER009(1), TINTEGER010(1)
InputStr "_", STRING042, TSTRING036(1), 60, STRING043, 8
Gosub LABEL021
For INTEGER004 = 1 To INTEGER003
If (STRING042 == TSTRING024(INTEGER004)) Then
If (Exist(PPEPath() + "ansi\blacklst")) Then
DispFile PPEPath() + "ansi\blacklst", 1 + 4
Goto LABEL007
Endif
Print "@X07"
Cls
PrintLn
PrintLn "@X08Y@X07oU aR@X0Fe NoT WaNTeD oN THiS SYSTeM B@X07iTCH@X08!"
PrintLn
:LABEL007
Wait
Hangup
Goto LABEL022
Endif
Next
INTEGER001 = U_RecNum(STRING042)
If (INTEGER001 == -1) Then
Cls
PrintLn "@X08U@X07se@X0Fr Not fo@X07un@X08d"
PrintLn "@X08A@X07pp@X0Fly Fir@X07st@X08!"
PrintLn
Wait
Goto LABEL002
Goto LABEL011
Endif
GetAltUser INTEGER001
If (U_Sec == INTEGER002) Then
If (Exist(PPEPath() + "ANSI\NOTVAL.ANS")) Then
DispFile PPEPath() + "ANSI\NOTVAL.ANS", 1
Wait
Hangup
Goto LABEL022
Goto LABEL008
Endif
PrintLn
PrintLn STRING033
PrintLn
Wait
Hangup
Goto LABEL022
:LABEL008
Goto LABEL002
Endif
AnsiPos TINTEGER009(2), TINTEGER010(2)
PrintLn TSTRING036(1), U_City
AnsiPos TINTEGER009(3), TINTEGER010(3)
InputStr "_", STRING042, TSTRING036(1), 60, STRING043, 8 + 1
If (STRING042 == U_Pwd) Then
If (Exist(PPEPath() + "ANSI\SYSTEM.ANS")) Then
DispFile PPEPath() + "ANSI\SYSTEM.ANS", 1
Goto LABEL009
Endif
Cls
PrintLn
PrintLn STRING032
PrintLn
:LABEL009
PrintLn
InputYN STRING029, STRING042, 7
If (Upper(STRING042) == "Y") Then
If (Exist(TSTRING006(8))) Then
DispFile TSTRING006(8), 1 + 4
Wait
Endif
Goto LABEL022
Goto LABEL010
Endif
If (Upper(STRING042) == "N") Then
Goto LABEL002
Endif
:LABEL010
Goto LABEL011
Endif
AnsiPos TINTEGER009(3), TINTEGER010(3)
PrintLn "■ WRONG PASSWORD! ■"
AnsiPos 1, 23
Goto LABEL002
:LABEL011
Goto LABEL016
Endif
If (Upper(STRING019) == "NO") Then
Print "@X07"
Cls
InputStr STRING037, STRING042, 7, 60, STRING043, 8
Gosub LABEL021
For INTEGER004 = 1 To INTEGER003
If (STRING042 == TSTRING024(INTEGER004)) Then
If (Exist(PPEPath() + "ansi\blacklst")) Then
DispFile PPEPath() + "ansi\blacklst", 1 + 4
Goto LABEL012
Endif
Print "@X07"
Cls
PrintLn
PrintLn "@X08Y@X07oU aR@X0Fe NoT WaNTeD oN THiS SYSTeM B@X07iTCH@X08!"
PrintLn
:LABEL012
Wait
Hangup
Goto LABEL022
Endif
Next
INTEGER001 = U_RecNum(STRING042)
If (INTEGER001 == -1) Then
Cls
PrintLn "@X08U@X07se@X0Fr Not fo@X07un@X08d"
PrintLn "@X08A@X07pp@X0Fly Fir@X07st@X08!"
PrintLn
Wait
Goto LABEL002
Goto LABEL016
Endif
GetAltUser INTEGER001
If (U_Sec == INTEGER002) Then
If (Exist(PPEPath() + "ANSI\NOTVAL.ANS")) Then
DispFile PPEPath() + "ANSI\NOTVAL.ANS", 1
Wait
Hangup
Goto LABEL022
Goto LABEL013
Endif
PrintLn
PrintLn STRING033
PrintLn
Wait
Hangup
Goto LABEL022
:LABEL013
Goto LABEL002
Endif
PrintLn
InputStr STRING038, STRING042, 7, 30, STRING043, 8 + 1
If (STRING042 == U_Pwd) Then
If (Exist(PPEPath() + "ANSI\SYSTEM.ANS")) Then
DispFile PPEPath() + "ANSI\SYSTEM.ANS", 1
Goto LABEL014
Endif
Cls
PrintLn
PrintLn STRING032
PrintLn
:LABEL014
PrintLn
InputYN STRING029, STRING042, 7
If (Upper(STRING042) == "Y") Then
If (Exist(TSTRING006(8))) Then
DispFile TSTRING006(8), 1 + 4
Wait
Endif
Goto LABEL022
Goto LABEL015
Endif
If (Upper(STRING042) == "N") Then
Goto LABEL002
Endif
:LABEL015
Goto LABEL016
Endif
AnsiPos 1, 6
PrintLn "@X08■ @X0CWRONG PASSWORD! @X08■"
Wait
Goto LABEL002
Endif
Endif
:LABEL016
If (STRING039 == Upper(STRING008)) Then
BOOLEAN001 = 0
If (STRING017 == "69") Then
Goto LABEL022
Endif
If (Upper(STRING018) == "YES") Then
If (Exist(TSTRING006(4))) Then
DispFile TSTRING006(4), 1 + 4
Goto LABEL017
Endif
Goto LABEL002
:LABEL017
AnsiPos INTEGER007, INTEGER008
InputStr "_", STRING040, STRING035, 60, STRING043, 8 + 1 + 4096
PrintLn
If (STRING040 == Upper(STRING017)) Then
If (Exist(TSTRING006(11))) DispFile TSTRING006(11) , 1 + 4
Wait
Goto LABEL022
Goto LABEL018
Endif
If (Exist(TSTRING006(9))) Then
DispFile TSTRING006(9), 1 + 4
Wait
Goto LABEL002
Goto LABEL018
Endif
Print "@X07"
Cls
PrintLn STRING028
PrintLn
Wait
Goto LABEL002
:LABEL018
Goto LABEL019
Endif
If (Upper(STRING018) == "NO") Then
Print "@X07"
Cls
InputStr STRING027, STRING040, 7, 60, STRING043, 8 + 1 + 4096
PrintLn
If (STRING040 == Upper(STRING017)) Then
If (Exist(TSTRING006(11))) DispFile TSTRING006(11) , 1 + 4
Wait
Goto LABEL022
Goto LABEL019
Endif
If (Exist(TSTRING006(9))) Then
DispFile TSTRING006(9), 1 + 4
Wait
Goto LABEL002
Goto LABEL019
Endif
Print "@X07"
Cls
PrintLn STRING028
PrintLn
Wait
Goto LABEL002
Endif
Endif
:LABEL019
If (STRING039 == Upper(STRING012)) Then
BOOLEAN001 = 0
If (Exist(TSTRING006(6))) DispFile TSTRING006(6) , 1 + 4
Hangup
Goto LABEL022
Endif
If (STRING039 == Upper(STRING010)) Then
BOOLEAN001 = 0
Call PPEPath() + "feedback.ppe"
Goto LABEL002
Endif
Case Upper(STRING013)
BOOLEAN001 = 0
PrintLn
PrintLn
Goto LABEL002
End Select
BOOLEAN001 = 1
Goto LABEL002
:LABEL020
STRING043 = " 0123456789!@#$%^&*()-=_+`~qwertyuiop[]\|asdfghjkl;'zxcvbnm,./<>?:{}QWERTYUIOPASDFGHJKLZXCVBNM═"
If (BOOLEAN001 == 1) Then
PrintLn "@X07Bad command or file name"
PrintLn
Endif
PrintLn
InputStr STRING002, STRING039, 7, 20, STRING043, 8
If (STRING039 == "DIR") Then
BOOLEAN001 = 0
If (Exist(STRING003)) DispFile PPEPath() + "DOS\", STRING003
Goto LABEL020
Else
If (STRING039 == "DIR /W") Then
If (Exist(STRING004)) DispFile PPEPath() + "DOS\", STRING004
Goto LABEL020
Endif
If (STRING039 == "SOLAR") Then
BOOLEAN001 = 0
PrintLn
PrintLn "Not enough memory to open application"
PrintLn
Goto LABEL020
Endif
If (STRING039 == "SOLAR.BAT") Then
BOOLEAN001 = 0
PrintLn
PrintLn "Not enough memory to open application"
PrintLn
Goto LABEL020
Endif
If (STRING039 == "CD ..") Then
BOOLEAN001 = 0
Goto LABEL002
Endif
If (STRING039 == "CD..") Then
BOOLEAN001 = 0
Goto LABEL002
Endif
If (STRING039 == "CD \") Then
BOOLEAN001 = 0
Goto LABEL002
Endif
If (STRING039 == "CD\") Then
BOOLEAN001 = 0
Goto LABEL002
Endif
BOOLEAN001 = 1
Endif
BOOLEAN001 = 1
Goto LABEL020
:LABEL021
If (Exist(PPEPath() + "BLACKLST.TXT")) Then
INTEGER003 = ReadLine(PPEPath() + "BLACKLST.TXT", 1)
For INTEGER004 = 1 To INTEGER003
TSTRING024(INTEGER004) = Upper(ReadLine(PPEPath() + "BLACKLST.TXT", 1 + INTEGER004))
Next
Endif
Return
:LABEL022
Stop
End
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 End
; 13 Cls
; 24 Wait
; 158 Goto
; 58 Let
; 8 Print
; 71 PrintLn
; 85 If
; 26 DispFile
; 2 FCreate
; 6 FOpen
; 8 FClose
; 37 FGet
; 2 FPut
; 11 FPutLn
; 9 Hangup
; 4 Log
; 10 InputStr
; 3 InputYN
; 5 Gosub
; 2 Return
; 1 Stop
; 1 Call
; 1 KbdChkOff
; 8 AnsiPos
; 2 GetAltUser
;
;
; ■ Functions used :
;
; 2 -
; 87 +
; 55 ==
; 3 <
; 3 <=
; 6 >=
; 75 !
; 6 &&
; 3 ||
; 27 Upper()
; 52 PPEPath()
; 12 ReadLine()
; 29 Exist()
; 2 U_RecNum()
;
;------------------------------------------------------------------------------
;
; Analysis flags : RBCH
;
; R - Read user ■ 5
; User records are read, this may signify that someone wants to get
; various informations about a user (for example his password), but
; this may also be normal for a program accessing user records (for
; example a User Editor)
; ■ Search for : GETALTUSER
;
; B - Brute hangup ■ 1
; Program hangup without notification. This may be a good way to
; disconnect a user, but if used randomly, may be very nasty
; ■ Search for : HANGUP, DTROFF
;
; C - Call child PPE ■ 3
; This is usually normal, but may be a tricky way to launch some
; sysop-only commands.
; ■ Search for : CALL
;
; H - Read Password or Password History ■ 5
; Program is reading the user's password or last password history
; This may be ok for a password manager, but it is very suspect. Check!
; ■ Search for : U_PWDHIST, U_PWD
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 3 For/Next
; 0 While/EndWhile
; 70 If/Then or If/Then/Else
; 1 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------