home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carsten's PPE Collection
/
Carstens_PPE_Collection_2007.zip
/
S
/
SYSCHAT.ZIP
/
CSSC.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-10-10
|
16KB
|
936 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 INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
String STRING006
String STRING007
String TSTRING008(2)
String TSTRING009(2)
String TSTRING010(2)
String TSTRING011(2)
String TSTRING012(2)
String TSTRING013(2)
String STRING014
String STRING015
String STRING016
String STRING017
String STRING018
String STRING019
String STRING020
String STRING021
String STRING022
String STRING023
String STRING024
String STRING025
String STRING026
String STRING027
String STRING028
String STRING029
String STRING030
String TSTRING031(25)
String STRING032
String STRING033
String STRING034
String STRING035
BigStr BIGSTR001
BigStr BIGSTR002
Declare Function FUNCTION001(Integer INTEGER020, Integer INTEGER021) Boolean
Declare Procedure PROC001(Integer INTEGER015, Integer INTEGER016, Var Integer INTEGER017, Var Integer INTEGER018)
Declare Procedure PROC002()
Declare Procedure PROC003()
Declare Procedure PROC004(Var Integer INTEGER011, Integer INTEGER012, Var Integer INTEGER013, Var String STRING036, String STRING037, Integer INTEGER014)
Declare Procedure PROC005()
Declare Procedure PROC006()
Declare Procedure PROC007(Integer INTEGER019)
Declare Procedure PROC008()
Declare Procedure PROC009()
Declare Procedure PROC010()
Declare Procedure PROC011()
Declare Procedure PROC012()
Declare Procedure PROC013()
Declare Procedure PROC014()
Declare Procedure PROC015()
Declare Procedure PROC016()
Declare Procedure PROC017()
Declare Procedure PROC018()
;------------------------------------------------------------------------------
STRING002 = Chr(67) + Chr(83) + Chr(83) + Chr(67)
STRING001 = Chr(118) + Chr(51) + Chr(46) + Chr(48) + Chr(48)
STRING003 = Chr(67) + Chr(117) + Chr(115) + Chr(116) + Chr(111) + Chr(109) + Chr(32) + Chr(83) + Chr(112) + Chr(108) + Chr(105) + Chr(116) + Chr(32) + Chr(83) + Chr(99) + Chr(114) + Chr(101) + Chr(101) + Chr(110) + Chr(32) + Chr(67) + Chr(104) + Chr(97) + Chr(116) + Chr(32) + Chr(80) + Chr(80) + Chr(69)
If (!AnsiOn()) End
STRING004 = "If you have suggestions or requests for permanent or optional features,"
STRING005 = "please send mail to <mslasher@io.org>. - Rob Hunter / CSSC (c)1993-94 "
INTEGER003 = String(MinLeft())
STRING014 = PPEPath() + STRING002 + "." + "D" + "A" + "T"
STRING015 = PPEPath() + STRING002 + "_" + "L" + "O" + "G" + "." + String(PcbNode())
STRING016 = "System Operator"
STRING017 = "@" + "X" + "0" + "8"
STRING020 = "@" + "X" + "7" + "F"
STRING021 = "@" + "X" + "0" + "F"
STRING022 = "@" + "X" + "0" + "7"
STRING019 = "@X0F"
STRING018 = "@X07"
BOOLEAN004 = 0
BOOLEAN003 = 0
BOOLEAN001 = 0
BOOLEAN002 = 1
STRING033 = TokenStr()
If (InStr(STRING033, "333") <> 0) BOOLEAN001 = 1
If (FUNCTION001(333, 1)) Then
PROC008()
Goto LABEL001
Endif
:LABEL001
If (Exist(STRING014)) PROC006()
TSTRING009(1) = STRING017 + "▐" + STRING020 + "LOG" + STRING017 + "▌"
TSTRING009(2) = STRING017 + "█████"
TSTRING010(1) = STRING017 + "▐" + STRING020 + "Please Wait" + STRING017 + "▌"
TSTRING010(2) = STRING017 + "█████████████"
TSTRING011(1) = STRING017 + "▐" + STRING020 + "Q-LOCK" + STRING017 + "▌"
TSTRING011(2) = STRING017 + "████████"
TSTRING013(1) = STRING017 + "▐" + STRING020 + "HELP" + STRING017 + "▌"
TSTRING013(2) = STRING017 + "██████"
TSTRING012(1) = STRING017 + "▐" + STRING020 + "BEEP" + STRING017 + "▌"
TSTRING012(2) = STRING017 + "██████"
TSTRING008(1) = STRING017 + "▐" + STRING020 + "CHAT MODE" + STRING017 + "▌"
TSTRING008(2) = STRING017 + "▐" + STRING020 + "EDIT MODE" + STRING017 + "▌"
If (BOOLEAN004) Then
TSTRING009(0) = TSTRING009(1)
Else
TSTRING009(0) = TSTRING009(2)
Endif
TSTRING008(0) = TSTRING008(1)
TSTRING010(0) = TSTRING010(2)
TSTRING011(0) = TSTRING011(2)
TSTRING012(0) = TSTRING012(2)
TSTRING013(0) = TSTRING013(2)
Log "
" + STRING002 + " " + STRING001 + " " + "
" + "[" + "O" + "p" + "e" + "n" + "e" + "d: " + String(Time()) + "]", 0
SaveScrn
StartDisp 1
Cls
PROC009()
STRING025 = 0
STRING026 = 5
STRING027 = 0
STRING028 = 15
While (STRING023 <> Chr(27)) Do
STRING023 = ""
STRING024 = ""
STRING023 = KInkey()
If (!BOOLEAN003) STRING024 = MInkey()
If (STRING023 <> "") PROC010()
If (STRING024 <> "") PROC011()
If (Abort()) Then
ResetDisp
PROC009()
Endif
EndWhile
PROC008()
End
;------------------------------------------------------------------------------
Procedure PROC010()
PROC004(STRING026, 13, STRING025, STRING023, STRING021, 0)
If (InStr(Mask_Ascii(), STRING023) <> 0) Then
Inc STRING025
AnsiPos STRING025, STRING026
Print STRING021 + STRING023
BIGSTR001 = BIGSTR001 + STRING023
Else
Select Case (STRING023)
Case Chr(13)
If (BOOLEAN004) PROC007(0)
If (STRING026 >= 13) Then
PROC001(0, 0, STRING025, STRING026)
Else
Inc STRING026
STRING025 = 0
AnsiPos STRING025, STRING026
Endif
Case Chr(8), Chr(127)
If (STRING025 <> 0) Then
AnsiPos STRING025 + 1, STRING026
Print Chr(8) + " " + Chr(8)
Dec STRING025
BIGSTR001 = Left(BIGSTR001, Len(BIGSTR001) - 1)
Else
Sound 2000
Delay 1
Sound 0
KbdFlush
Endif
Case Chr(9)
If (TSTRING013(0) <> TSTRING013(1)) PROC012()
Case Chr(18)
PROC009()
Case Chr(12)
If (BOOLEAN004) Goto LABEL002
BOOLEAN004 = 1
PROC014()
TSTRING009(0) = TSTRING009(1)
PROC002()
BIGSTR001 = ""
BIGSTR002 = ""
Goto LABEL003
:LABEL002
BOOLEAN004 = 0
PROC015()
TSTRING009(0) = TSTRING009(2)
PROC002()
:LABEL003
Case Chr(7)
TSTRING012(0) = TSTRING012(1)
PROC002()
Print "@BEEP@"
TSTRING012(0) = TSTRING012(2)
PROC002()
KeyFlush
Case Chr(17)
If (BOOLEAN003) Goto LABEL004
BOOLEAN003 = 1
TSTRING011(0) = TSTRING011(1)
Goto LABEL005
:LABEL004
BOOLEAN003 = 0
TSTRING011(0) = TSTRING011(2)
MdmFlush
:LABEL005
PROC002()
Case Chr(20)
If (TSTRING013(0) <> TSTRING013(1)) Then
TSTRING010(0) = TSTRING010(1)
PROC002()
PROC016()
Endif
Case Chr(5)
If (TSTRING013(0) <> TSTRING013(1)) Then
TSTRING010(0) = TSTRING010(1)
TSTRING008(0) = TSTRING008(2)
PROC002()
PROC018()
Endif
Case Chr(23)
For INTEGER005 = -13 To -5
AnsiPos 1, -INTEGER005
ClrEol
Next
STRING025 = 0
STRING026 = 5
AnsiPos 1, 5
Endif
End Select
EndProc
;------------------------------------------------------------------------------
Procedure PROC011()
PROC004(STRING028, 22, STRING027, STRING024, STRING022, 1)
If (InStr(Mask_Ascii(), STRING024) <> 0) Then
Inc STRING027
AnsiPos STRING027, STRING028
Print STRING022 + STRING024
BIGSTR002 = BIGSTR002 + STRING024
Else
Select Case (STRING024)
Case Chr(13)
If (BOOLEAN004) PROC007(1)
If (STRING028 >= 22) Then
PROC001(10, 9, STRING027, STRING028)
Else
Inc STRING028
STRING027 = 0
AnsiPos STRING027, STRING028
Endif
Case Chr(8), Chr(127)
If (STRING027 <> 0) Then
AnsiPos STRING027 + 1, STRING028
Print Chr(8) + " " + Chr(8)
BIGSTR002 = Left(BIGSTR002, Len(BIGSTR002) - 1)
Dec STRING027
Endif
Case Chr(18)
PROC009()
Case Chr(9)
If (TSTRING013(0) <> TSTRING013(1)) PROC013()
Case Chr(7)
TSTRING012(0) = TSTRING012(1)
PROC002()
Sound 2000
Delay 2
Sound 2500
Delay 2
Sound 3000
Delay 2
Sound 0
TSTRING012(0) = TSTRING012(2)
PROC002()
MdmFlush
Case Chr(23)
For INTEGER005 = -22 To -15
AnsiPos 1, -INTEGER005
ClrEol
Next
STRING027 = 0
STRING028 = 15
AnsiPos 1, 15
Case Chr(27)
If (BOOLEAN002) PROC008()
Endif
End Select
EndProc
;------------------------------------------------------------------------------
Procedure PROC006()
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
String STRING034
String STRING035
FOpen 1, STRING014, 0, 2
FGet 1, STRING016
FGet 1, INTEGER008
FGet 1, INTEGER009
FGet 1, INTEGER010
FGet 1, STRING034
FGet 1, STRING035
FGet 1, STRING006
FClose 1
If (Left(Upper(STRING034), 1) == "N") BOOLEAN002 = 0
If (Left(Upper(STRING035), 1) == "Y") Then
BOOLEAN004 = 1
PROC014()
Endif
If ((INTEGER010 >= 1) && (INTEGER010 <= 6)) Then
STRING017 = "@X" + Right("0" + String(I2S(INTEGER010, 16)), 2)
STRING018 = "@X0" + String(I2S(INTEGER010 + 8, 16))
STRING020 = "@X" + String(I2S(INTEGER010, 16)) + "F"
Endif
STRING021 = "@X" + Right("0" + String(I2S(INTEGER008, 16)), 2)
STRING022 = "@X" + Right("0" + String(I2S(INTEGER009, 16)), 2)
EndProc
;------------------------------------------------------------------------------
Procedure PROC009()
AnsiPos 1, 23
Print STRING017 + "───────────────────────────────────────────────────────────────────────────────"
Backup Len(U_Name()) + 9
Print STRING017 + "═ " + STRING022 + Mixed(U_Name()) + STRING017 + " ═───"
PROC003()
AnsiPos 1, 1
PrintLn STRING017 + "·" + STRING018 + "∙ " + STRING019 + "[MS] " + STRING002 + " " + STRING001 + STRING017 + ": " + STRING019 + STRING003 + STRING018 + " ∙" + STRING017 + "· ╒ [" + STRING019 + "TAB" + STRING017 + "]=" + STRING018 + "Help " + STRING017 + "/ [" + STRING019 + "ESC" + STRING017 + "]=" + STRING018 + "Exit" + STRING017 + " ╕"
PrintLn STRING017 + "────────────────────────────────────────────────────┴─────────────────────────┴"
PROC002()
Newline
PrintLn STRING017 + "───────────────────────────────────────────────────────────────────────────────"
AnsiPos 79, 3
EndProc
;------------------------------------------------------------------------------
Procedure PROC002()
AnsiPos 1, 3
Print STRING017 + "██" + TSTRING010(0) + "██████████████████████" + TSTRING011(0) + "█" + TSTRING012(0) + "█" + TSTRING013(0) + "█" + TSTRING009(0) + "█" + TSTRING008(0) + "██"
Backup 1
EndProc
;------------------------------------------------------------------------------
Procedure PROC008()
Log "
" + STRING002 + " " + STRING001 + " " + "
" + "[" + "C" + "l" + "o" + "s" + "e" + "d: " + String(Time()) + "]", 0
INTEGER004 = MinLeft()
If (INTEGER003 > INTEGER004) AdjTime INTEGER003 - INTEGER004
If (BOOLEAN004) PROC015()
DefColor
StartDisp 2
If (BOOLEAN001) Then
KbdStuff Chr(27)
KbdStuff Chr(13)
Else
RestScrn
Endif
End
EndProc
;------------------------------------------------------------------------------
Procedure PROC004(Var Integer INTEGER011, Integer INTEGER012, Var Integer INTEGER013, Var String STRING036, String STRING037, Integer INTEGER014)
If (INTEGER013 == 79) Then
INTEGER005 = 0
If (INTEGER011 == INTEGER012) Then
If (STRING036 == Chr(13)) Goto LABEL013
STRING032 = ScrText(79, INTEGER012, 1, 0)
If (Left(STRING032, 1) == " ") Then
If (INTEGER014 == 0) Then
PROC001(0, 0, INTEGER013, INTEGER011)
Goto LABEL006
Endif
PROC001(10, 9, INTEGER013, INTEGER011)
:LABEL006
Goto LABEL010
Endif
For INTEGER005 = 1 To 30
INTEGER006 = 80 - INTEGER005
STRING032 = ScrText(INTEGER006, INTEGER012, INTEGER005, 0)
If (Left(STRING032, 1) == " ") Goto LABEL007
Next
Goto LABEL009
:LABEL007
AnsiPos INTEGER006, INTEGER012
Print Space(INTEGER005)
If (INTEGER014 == 0) Then
PROC001(0, 0, INTEGER013, INTEGER011)
Goto LABEL008
Endif
PROC001(10, 9, INTEGER013, INTEGER011)
:LABEL008
Print STRING037 + LTrim(String(STRING032), " ")
INTEGER013 = INTEGER005 - 1
ClrEol
Goto LABEL010
:LABEL009
If (INTEGER014 == 0) Then
PROC001(0, 0, INTEGER013, INTEGER011)
Goto LABEL010
Endif
PROC001(10, 9, INTEGER013, INTEGER011)
:LABEL010
Goto LABEL013
Endif
If (STRING036 == Chr(13)) Goto LABEL013
STRING032 = ScrText(79, GetY(), 1, 0)
If (Left(STRING032, 1) == " ") Then
INTEGER013 = 0
Inc INTEGER011
Goto LABEL013
Endif
For INTEGER005 = 1 To 30
INTEGER006 = 80 - INTEGER005
STRING032 = ScrText(INTEGER006, GetY(), INTEGER005, 0)
If (Left(STRING032, 1) == " ") Goto LABEL011
Next
Goto LABEL012
:LABEL011
AnsiPos INTEGER006, GetY()
Print Space(INTEGER006)
INTEGER013 = 0
Inc INTEGER011
AnsiPos 1, INTEGER011
Print LTrim(String(STRING032), " ")
INTEGER013 = INTEGER005 - 1
Goto LABEL013
:LABEL012
INTEGER013 = 0
Inc INTEGER011
:LABEL013
If (BOOLEAN004) Then
If (INTEGER014 == 0) Then
STRING007 = Right(BIGSTR001, INTEGER005 - 1)
BIGSTR001 = Left(BIGSTR001, Len(BIGSTR001) - INTEGER005)
PROC007(0)
BIGSTR001 = STRING007
Goto LABEL014
Endif
STRING007 = Right(BIGSTR002, INTEGER005 - 1)
BIGSTR002 = Left(BIGSTR002, Len(BIGSTR002) - INTEGER005)
PROC007(1)
BIGSTR002 = STRING007
Endif
Endif
:LABEL014
EndProc
;------------------------------------------------------------------------------
Procedure PROC001(Integer INTEGER015, Integer INTEGER016, Var Integer INTEGER017, Var Integer INTEGER018)
TSTRING031(5 + INTEGER015) = ScrText(1, 11 + INTEGER016, 80, 0)
TSTRING031(6 + INTEGER015) = ScrText(1, 12 + INTEGER016, 80, 0)
TSTRING031(7 + INTEGER015) = ScrText(1, 13 + INTEGER016, 80, 0)
INTEGER002 = 7 + INTEGER015
If (TSTRING031(7 + INTEGER015) == Space(80)) Then
If (TSTRING031(6 + INTEGER015) == Space(80)) Then
Select Case (TSTRING031(5 + INTEGER015))
Case Space(80)
INTEGER002 = 4 + INTEGER015
TSTRING031(5 + INTEGER015) = ScrText(1, 11 + INTEGER016, 80, 1)
INTEGER002 = 5 + INTEGER015
Else
Case Space(80)
TSTRING031(5 + INTEGER015) = ScrText(1, 12 + INTEGER016, 80, 1)
TSTRING031(6 + INTEGER015) = ScrText(1, 13 + INTEGER016, 80, 1)
INTEGER002 = 6 + INTEGER015
TSTRING031(5 + INTEGER015) = ScrText(1, 11 + INTEGER016, 80, 1)
TSTRING031(6 + INTEGER015) = ScrText(1, 12 + INTEGER016, 80, 1)
TSTRING031(7 + INTEGER015) = ScrText(1, 13 + INTEGER016, 80, 1)
INTEGER002 = 7 + INTEGER015
Else
Case Space(80)
Case Space(80)
TSTRING031(5 + INTEGER015) = ScrText(1, 13 + INTEGER016, 80, 1)
INTEGER002 = 5 + INTEGER015
Case Else
TSTRING031(5 + INTEGER015) = ScrText(1, 12 + INTEGER016, 80, 1)
TSTRING031(6 + INTEGER015) = ScrText(1, 13 + INTEGER016, 80, 1)
INTEGER002 = 6 + INTEGER015
TSTRING031(5 + INTEGER015) = ScrText(1, 11 + INTEGER016, 80, 1)
TSTRING031(6 + INTEGER015) = ScrText(1, 12 + INTEGER016, 80, 1)
TSTRING031(7 + INTEGER015) = ScrText(1, 13 + INTEGER016, 80, 1)
Endif
Endif
End Select
For INTEGER007 = 5 + INTEGER015 To INTEGER002
AnsiPos 1, INTEGER007
PrintLn TSTRING031(INTEGER007)
Next
For INTEGER007 = INTEGER002 + 1 To 13 + INTEGER016
AnsiPos 1, INTEGER007
ClrEol
Next
INTEGER017 = 0
INTEGER018 = INTEGER002 + 1
AnsiPos 1, INTEGER002 + 1
EndProc
;------------------------------------------------------------------------------
Procedure PROC012()
TSTRING013(0) = TSTRING013(1)
PROC002()
For INTEGER001 = -13 To -5
TSTRING031(-INTEGER001) = ScrText(1, -INTEGER001, 80, 0)
Next
Print STRING020
SPrint "H"
SPrintLn " C" + "S" + "S" + "C SysOp Help "
SPrintLn "───────────────────────────────────────────────────────────────────────────────"
SPrintLn " [ESC] = Exit Chat [CTRL-E] = Load External User Editor "
SPrintLn " [TAB] = This Help Screen [CTRL-G] = Page/Beep the Online User "
SPrintLn " [CTRL-L] = Toggle Chat Logging "
SPrintLn " [CTRL-K] = Redraw Screen Outlines [CTRL-Q] = Quiet! Lock User's Keys "
SPrintLn " [CTRL-W] = Clear Your Chat Window [CTRL-T] = Import a Text File "
SPrintLn "───────────────────────────────────────────────────────────────────────────────"
SPrint " TAP ANY KEY TO CONTINUE "
SPrint "9H"
While (KInkey() == "") Do
If (Abort()) Then
ResetDisp
PROC009()
Endif
If (!BOOLEAN003) STRING024 = MInkey()
If (STRING024 <> "") PROC011()
EndWhile
SPrint "H"
Print STRING021
For INTEGER001 = 5 To 13
SPrint TSTRING031(INTEGER001)
Next
TSTRING013(0) = TSTRING013(2)
PROC002()
EndProc
;------------------------------------------------------------------------------
Procedure PROC014()
FAppend 1, STRING015, 1, 0
FPutLn 1, "--------------------------------------------------------------------------------"
FPutLn 1, "S: (SysOp): " + Upper(STRING016) + Space(47 - Len(STRING016)) + "[" + String(Time()) + "] [" + String(Date()) + "]"
FPutLn 1, "U: (User) : " + String(U_Name()) + Space(56 - Len(U_Name())) + "[" + STRING002 + " " + STRING001 + "]"
FPutLn 1, "--------------------------------------------------------------------------------"
FClose 1
EndProc
;------------------------------------------------------------------------------
Procedure PROC007(Integer INTEGER019)
If ((INTEGER019 == 0) && (BIGSTR001 <> "")) Then
FAppend 1, STRING015, 1, 0
FPutLn 1, "S: " + BIGSTR001
FClose 1
BIGSTR001 = ""
ElseIf (BIGSTR002 <> "") Then
FAppend 1, STRING015, 1, 0
FPutLn 1, "U: " + BIGSTR002
FClose 1
BIGSTR002 = ""
Endif
EndProc
;------------------------------------------------------------------------------
Procedure PROC015()
PROC007(0)
PROC007(1)
FAppend 1, STRING015, 1, 0
FPutLn 1, "---------------------------------------------------------------[END: " + String(Time()) + "]--"
FPutLn 1, ""
FClose 1
EndProc
;------------------------------------------------------------------------------
Procedure PROC013()
TSTRING013(0) = TSTRING013(1)
PROC002()
For INTEGER001 = -22 To -15
TSTRING031(-INTEGER001) = ScrText(1, -INTEGER001, 80, 0)
Next
Print STRING020
MPrint "1H"
MPrintLn " C" + "S" + "S" + "C User Help "
MPrintLn "───────────────────────────────────────────────────────────────────────────────"
MPrintLn " "
MPrintLn " [ESC] = Exit CSSC [CTRL-G] = Page/Beep the SysOp "
MPrintLn " [TAB] = This Help Screen [CTRL-K] = Redraw Screen Outlines "
MPrintLn " [CTRL-W] = Clear Your Chat Window "
MPrintLn "───────────────────────────────────────────────────────────────────────────────"
MPrint " TAP ANY KEY TO CONTINUE "
MPrint "9H"
While (MInkey() == "") Do
If (Abort()) Then
ResetDisp
PROC009()
Endif
STRING023 = KInkey()
If (STRING023 == Chr(27)) PROC008()
If (STRING023 <> "") PROC010()
EndWhile
MPrint "1H"
Print STRING022
For INTEGER001 = 15 To 22
MPrint TSTRING031(INTEGER001)
Next
TSTRING013(0) = TSTRING013(2)
PROC002()
EndProc
;------------------------------------------------------------------------------
Procedure PROC016()
STRING029 = ""
STRING030 = ""
KbdFlush
Print STRING021
SPrint "2HFilename: "
Print STRING020
SPrint Space(35)
SPrint "D"
While (STRING030 <> Chr(13)) Do
STRING030 = KInkey()
If (Abort()) ResetDisp
If (InStr(Mask_File(), STRING030) && (Len(STRING029) < 65)) Then
SPrint STRING030
STRING029 = STRING029 + STRING030
Continue
Endif
If (((STRING030 == Chr(8)) || (STRING030 == Chr(127))) && (Len(STRING029) <> 0)) Then
SPrint Chr(8) + " " + Chr(8)
STRING029 = Left(STRING029, Len(STRING029) - 1)
Endif
EndWhile
If (Exist(STRING029)) Then
If (BOOLEAN004) Then
FAppend 1, STRING015, 1, 0
FPutLn 1, "TEXT FILE: " + String(STRING029)
FClose 1
Endif
PROC005()
StartDisp 2
DefColor
Cls
DispFile STRING029, 0
Wait
StartDisp 1
Cls
PROC017()
KeyFlush
Else
Print STRING021
SPrint "2H[NO FILE] "
Delay 10
Endif
PROC003()
TSTRING010(0) = TSTRING010(2)
PROC002()
EndProc
;------------------------------------------------------------------------------
Procedure PROC005()
For INTEGER001 = 1 To 22
TSTRING031(INTEGER001) = ScrText(1, INTEGER001, 80, 1)
Next
TSTRING031(23) = ScrText(1, 23, 79, 1)
EndProc
;------------------------------------------------------------------------------
Procedure PROC017()
TSTRING031(14) = STRING017 + Left("───────────────────────────────────────────────────────────────────────────────", 70 - Len(STRING016)) + "═ " + STRING021 + STRING016 + STRING017 + " ═─── "
For INTEGER001 = 1 To 23
Print TSTRING031(INTEGER001)
Next
EndProc
;------------------------------------------------------------------------------
Procedure PROC018()
If (((InStr(STRING006, " ") <> 0) && Exist(Left(STRING006, InStr(STRING006, " ")))) || Exist(STRING006)) Then
If (BOOLEAN004) Then
FAppend 1, STRING015, 1, 0
FPutLn 1, "USER EDITOR"
FClose 1
Endif
PROC005()
SPrint ""
StartDisp 2
Tokenize STRING006
Call STRING006
StartDisp 1
Cls
PROC017()
KeyFlush
Else
Print STRING021
SPrint "2H[NO .PPE]: [" + STRING006 + "]"
Delay 10
Endif
PROC003()
TSTRING008(0) = TSTRING008(1)
TSTRING010(0) = TSTRING010(2)
PROC002()
EndProc
;------------------------------------------------------------------------------
Procedure PROC003()
AnsiPos 1, 14
Print STRING017 + Left("───────────────────────────────────────────────────────────────────────────────", 70 - Len(STRING016)) + "═ " + STRING021 + STRING016 + STRING017 + " ═───"
EndProc
;------------------------------------------------------------------------------
Function FUNCTION001(Integer INTEGER020, Integer INTEGER021) Boolean
If (FileInf(PPEPath() + PPEName() + ".PPE", 4) <> 16166) FUNCTION001 = 1
EndFunc
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 3 End
; 4 Cls
; 4 ClrEol
; 1 Wait
; 141 Goto
; 171 Let
; 22 Print
; 4 PrintLn
; 98 If
; 1 DispFile
; 1 FOpen
; 6 FAppend
; 7 FClose
; 7 FGet
; 10 FPutLn
; 4 ResetDisp
; 6 StartDisp
; 2 DefColor
; 1 AdjTime
; 2 Log
; 6 Delay
; 7 Inc
; 2 Dec
; 1 Newline
; 1 Tokenize
; 2 KbdStuff
; 1 Call
; 21 AnsiPos
; 2 Backup
; 1 SaveScrn
; 1 RestScrn
; 6 Sound
; 13 SPrint
; 8 SPrintLn
; 5 MPrint
; 7 MPrintLn
; 2 KbdFlush
; 2 MdmFlush
; 3 KeyFlush
; 18 EndProc
; 1 EndFunc
;
;
; ■ Functions used :
;
; 18 -
; 306 +
; 16 -
; 45 ==
; 20 <>
; 13 <
; 13 <=
; 1 >
; 27 >=
; 77 !
; 29 &&
; 16 ||
; 12 Len(
; 3 Upper()
; 14 Left()
; 5 Right()
; 11 Space()
; 71 Chr()
; 6 InStr()
; 4 Abort()
; 2 LTrim()
; 1 Date()
; 4 Time()
; 4 U_Name()
; 16 String()
; 1 Mask_File()
; 2 Mask_Ascii()
; 3 PPEPath()
; 1 PcbNode()
; 2 MinLeft()
; 4 Exist()
; 5 I2S()
; 1 TokenStr()
; 1 AnsiOn()
; 3 GetY()
; 1 FileInf()
; 1 PPEName()
; 4 KInkey()
; 3 MInkey()
; 23 ScrText()
; 1 Mixed()
;
;------------------------------------------------------------------------------
;
; Analysis flags : AMC
;
; A - Adjust online time remaining ■ 5
; Program modify the amount of online time remaining, this may
; be a way to bypass time limits
; ■ Search for : ADJTIME
;
; 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
;
; C - Call child PPE ■ 3
; This is usually normal, but may be a tricky way to launch some
; sysop-only commands.
; ■ Search for : CALL
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 12 For/Next
; 4 While/EndWhile
; 35 If/Then or If/Then/Else
; 3 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------