home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carsten's PPE Collection
/
Carstens_PPE_Collection_2007.zip
/
S
/
SC-GFX.ZIP
/
GFXDELUX.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1995-03-26
|
6KB
|
361 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
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
String STRING001
String STRING002
String TSTRING003(16)
String STRING004
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
String STRING019
String STRING020
String STRING021
String STRING022
String STRING023
String STRING024
;------------------------------------------------------------------------------
TSTRING003(0) = "[0;30;40m"
TSTRING003(1) = "[0;30;34m"
TSTRING003(2) = "[0;30;32m"
TSTRING003(3) = "[0;30;36m"
TSTRING003(4) = "[0;30;31m"
TSTRING003(5) = "[0;30;35m"
TSTRING003(6) = "[0;30;33m"
TSTRING003(7) = "[0;30;37m"
TSTRING003(8) = "[1;30;30m"
TSTRING003(9) = "[1;30;34m"
TSTRING003(10) = "[1;30;32m"
TSTRING003(11) = "[1;30;36m"
TSTRING003(12) = "[1;30;31m"
TSTRING003(13) = "[1;30;35m"
TSTRING003(14) = "[1;30;33m"
TSTRING003(15) = "[1;30;37m"
STRING022 = ""
STRING015 = ""
STRING019 = Chr(8) + Chr(32) + Chr(8)
STRING016 = 50
STRING017 = 3
STRING020 = Chr(27)
STRING021 = Chr(13) + Chr(10)
FOpen 2, PPEPath() + PPEName() + ".cfg", 0, 2
FGet 2, INTEGER003
FGet 2, INTEGER007
FGet 2, INTEGER004
FGet 2, INTEGER008
FGet 2, INTEGER005
FGet 2, INTEGER009
FGet 2, INTEGER006
FGet 2, INTEGER010
FGet 2, STRING005
FGet 2, STRING006
FGet 2, STRING007
FGet 2, STRING008
FClose 2
INTEGER001 = STRING005
If (INTEGER001 >= 8) Then
INTEGER001 = INTEGER001
Else
INTEGER001 = INTEGER001 + 8
Endif
STRING023 = STRING005
Gosub LABEL003
STRING012 = STRING024
STRING023 = STRING006
Gosub LABEL003
STRING009 = STRING024
STRING023 = STRING007
Gosub LABEL003
STRING010 = STRING024
STRING023 = STRING008
Gosub LABEL003
STRING011 = STRING024
If (OnLocal()) Then
BOOLEAN002 = 1
Else
MPrint STRING020 + "[!"
MPrint STRING019 + STRING019 + STRING019
MPrint STRING020 + " F"
MPrint STRING019 + STRING019 + STRING019
MPrint STRING020 + "[6n"
MPrint STRING019 + STRING019 + STRING019 + STRING019
STRING022 = Chr(MGetByte())
While ((STRING022 == "") && (INTEGER013 <= STRING016)) Do
STRING022 = Chr(MGetByte())
If (STRING022 <> "") Then
BOOLEAN004 = 1
Continue
Endif
Delay STRING017
INTEGER013 = INTEGER013 + 2
EndWhile
Select Case (STRING022)
Case "R"
While ((STRING022 <> "") || (Len(STRING018) < 9)) Do
STRING018 = STRING018 + STRING022
STRING022 = Chr(MGetByte())
If (STRING022 == "") Then
Delay STRING017
STRING022 = Chr(MGetByte())
Endif
EndWhile
If (Left(STRING018, 3) == "RIP") Then
BOOLEAN003 = 1
BOOLEAN002 = 1
Endif
Case STRING020
While (STRING022 <> "") Do
STRING018 = STRING018 + STRING022
STRING022 = Chr(MGetByte())
If (STRING022 == "") Then
Delay STRING017
STRING022 = Chr(MGetByte())
Endif
EndWhile
Tokenize STRING018
STRING022 = GetToken()
STRING022 = Mid(STRING022, 2, Len(STRING022 - 1))
If (((STRING022 >= 0) || (STRING022 <= 80)) && (Right(GetToken(), 1) == "R")) Then
BOOLEAN002 = 1
Goto LABEL001
Endif
BOOLEAN002 = 0
Endif
End Select
:LABEL001
If (BOOLEAN002) Then
BOOLEAN001 = ReadLine(PCBDat(), 257)
Endif
If (BOOLEAN001) Then
SPrint "SET YOUR DEFAULT GRAPHICS IN PCB SETUP TO NO"
End
Endif
INTEGER012 = Carrier()
STRING015 = INTEGER012
If (BOOLEAN002) Then
STRING013 = STRING020 + STRING012
STRING014 = "■■■■■■■■■■■■■■■■■■■■■■■■■■"
STRING001 = ReadLine(PCBDat(), 53)
STRING001 = STRING020 + STRING009 + STRING001 + STRING020 + "[0m"
Cls
DispFile PPEPath() + "gfxdelux.ans", 1
AnsiPos 79, 21
Print STRING020 + TSTRING003(0)
Print "█"
AnsiPos INTEGER003, INTEGER007
For INTEGER011 = 1 To 23
AnsiPos INTEGER003, INTEGER007
Print STRING020 + TSTRING003(15), "■", STRING020 + TSTRING003(INTEGER001), "■", STRING013, Left(STRING014, INTEGER011 - 2), STRING020 + TSTRING003(INTEGER001), "■", STRING020 + TSTRING003(15), "■"
AnsiPos 79, 21
For INTEGER002 = 1 To 10
Next
Next
If (BOOLEAN003) Then
AnsiPos INTEGER004, INTEGER008
STRING004 = STRING020 + STRING010 + " RIP" + STRING020 + "[0m"
Else
AnsiPos INTEGER004, INTEGER008
STRING004 = STRING020 + STRING010 + "ANSI" + STRING020 + "[0m"
Endif
Print STRING004
AnsiPos INTEGER005, INTEGER009
Print STRING001
AnsiPos INTEGER006, INTEGER010
STRING015 = STRING020 + STRING011 + STRING015 + STRING020 + "[0m"
Print STRING015
AnsiPos 1, 1
For INTEGER002 = 1 To 800
Next
STRING002 = "Y" + STRING021
KbdStuff STRING002
End
Else
Cls
Print "Sorry ANSI-GRAPHICS needed but not detected"
Print ""
Print " LOGGING OFF..."
Goto LABEL002
Endif
:LABEL002
Hangup
End
:LABEL003
If (STRING023 == "01") Then
STRING024 = TSTRING003(1)
Endif
If (STRING023 == "02") Then
STRING024 = TSTRING003(2)
Endif
If (STRING023 == "03") Then
STRING024 = TSTRING003(3)
Endif
If (STRING023 == "04") Then
STRING024 = TSTRING003(4)
Endif
If (STRING023 == "05") Then
STRING024 = TSTRING003(5)
Endif
If (STRING023 == "06") Then
STRING024 = TSTRING003(6)
Endif
If (STRING023 == "07") Then
STRING024 = TSTRING003(7)
Endif
If (STRING023 == "08") Then
STRING024 = TSTRING003(8)
Endif
If (STRING023 == "09") Then
STRING024 = TSTRING003(9)
Endif
If (STRING023 == "0A") Then
STRING024 = TSTRING003(10)
Endif
If (STRING023 == "0B") Then
STRING024 = TSTRING003(11)
Endif
If (STRING023 == "0C") Then
STRING024 = TSTRING003(12)
Endif
If (STRING023 == "0D") Then
STRING024 = TSTRING003(13)
Endif
If (STRING023 == "0E") Then
STRING024 = TSTRING003(14)
Endif
If (STRING023 == "0F") Then
STRING024 = TSTRING003(15)
Endif
Return
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 3 End
; 2 Cls
; 48 Goto
; 83 Let
; 9 Print
; 34 If
; 1 DispFile
; 1 FOpen
; 1 FClose
; 12 FGet
; 1 Hangup
; 4 Gosub
; 1 Return
; 3 Delay
; 1 Tokenize
; 1 KbdStuff
; 9 AnsiPos
; 1 SPrint
; 6 MPrint
;
;
; ■ Functions used :
;
; 46 +
; 2 -
; 22 ==
; 3 <>
; 4 <
; 5 <=
; 8 >=
; 34 !
; 8 &&
; 5 ||
; 2 Len(
; 1 Mid()
; 2 Left()
; 1 Right()
; 12 Chr()
; 2 PCBDat()
; 2 PPEPath()
; 2 ReadLine()
; 1 OnLocal()
; 2 GetToken()
; 1 Carrier()
; 1 PPEName()
; 6 MGetByte()
;
;------------------------------------------------------------------------------
;
; Analysis flags : BMd
;
; 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
;
; 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
;
; 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
;
; 3 For/Next
; 3 While/EndWhile
; 26 If/Then or If/Then/Else
; 1 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------