home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Hack-Phreak Scene Programs
/
cleanhpvac.zip
/
cleanhpvac
/
DOD-PG10.ZIP
/
PAGECHAT.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-06-29
|
16KB
|
874 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
;------------------------------------------------------------------------------
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
Integer INTEGER017
Integer INTEGER018
Integer INTEGER019
Integer INTEGER020
Integer INTEGER021
Integer INTEGER022
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
Time TIME001
Time TIME002
Time TIME003
;------------------------------------------------------------------------------
For INTEGER001 = 1 To 3
STRING003 = Upper(GetToken())
If (STRING003 == "/NP") INTEGER018 = 1
If (STRING003 == "/NC") INTEGER017 = 1
If (STRING003 == "/NL") INTEGER019 = 1
If (STRING003 == "/ND") INTEGER020 = 1
Next
GetUser
INTEGER015 = GetY()
INTEGER016 = GetX()
AnsiPos 80, U_PageLen
SaveScrn
Cls
INTEGER004 = 1
INTEGER008 = 1
INTEGER006 = 1
INTEGER013 = 1
INTEGER014 = 0
INTEGER011 = 0
INTEGER012 = 1
TIME003 = Time()
TIME001 = ReadLine(PCBDat(), 189)
TIME002 = ReadLine(PCBDat(), 190)
If (FileInf(PPEPath() + "PAGECHAT.USR", 1) == 1) Then
FClose 0
FOpen 0, PPEPath() + "PAGECHAT.USR", 2, 0
While (Ferr(0) == 0) Do
FGet 0, STRING005
If (Upper(Right(STRING005, Len(STRING005) - 2)) == Upper(U_Name())) Then
STRING005 = Upper(Left(STRING005, 2))
If (STRING005 == "P|") INTEGER011 = 1
If (STRING005 == "D|") INTEGER011 = 2
Endif
EndWhile
FClose 0
Endif
If (INTEGER018 == 1) Goto LABEL006
If (INTEGER011 == 1) Goto LABEL001
If ((((TIME003 >= TIME001) && (TIME003 <= TIME002)) || (CurSec() >= SysopSec())) && (INTEGER011 <> 2)) Goto LABEL001
Goto LABEL005
:LABEL001
Cls
PrintLn "@POFF@@X1F Page/Chat v1.0 Coded by M@X17o@X18o@X10n @X1FSha@X17d@X18o@X10w @X07"
Newline
PrintLn "@X0F═@X07══@X08════════════════════════════════════════════════════════════════════════════@X07"
STRING003 = "What you want?"
Gosub LABEL016
Print " @X07[@X08∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙@X07]"
FreshLine
PrintLn "@X0F═@X07══@X08════════════════════════════════════════════════════════════════════════════"
AnsiPos 17, 4
Color 15
:LABEL002
STRING001 = Inkey()
If (STRING001 == "") Goto LABEL002
If (STRING001 == Chr(13)) Then
Goto LABEL003
Endif
If (STRING001 == Chr(27)) Then
Cls
Sound 0
STRING003 = "Aborting page...."
Gosub LABEL016
Cls
RestScrn
AnsiPos INTEGER016, INTEGER015
End
Endif
If (STRING001 == Chr(8)) Then
If (INTEGER004 == 1) Goto LABEL002
INTEGER002 = GetX() - 1
INTEGER003 = GetY()
AnsiPos INTEGER002, INTEGER003
Color 8
Print "∙"
Color 15
STRING002 = Left(STRING002, Len(STRING002) - 1)
INTEGER004 = INTEGER004 - 1
Print STRING001
Goto LABEL002
Endif
If (INTEGER004 >= 63) Goto LABEL002
If (STRING001 == " ") Then
Color 8
Print "·"
Color 15
Else
Print STRING001
Endif
STRING002 = STRING002 + STRING001
INTEGER004 = INTEGER004 + 1
STRING001 = ""
Goto LABEL002
:LABEL003
If (INTEGER004 == 1) Then
:LABEL004
Cls
Sound 0
STRING003 = "Aborting page...."
Log "PAGE/CHAT: aborting page.", 0
Gosub LABEL016
Cls
RestScrn
AnsiPos INTEGER016, INTEGER015
End
Endif
If (FileInf(PPEPath() + "PAGECHAT.BAT", 1) == 0) Then
Color 143
AnsiPos 1, 9
PrintLn " Press (Esc) for abort paging."
Color 7
AnsiPos 1, 7
Endif
Log "PAGE/CHAT: paging operator", 0
AnsiPos 1, 9
Color 143
SPrintLn "═══════════════════════════════════════════════════════════════════════════════"
Color 11
SPrintLn " User name............" + U_Name()
SPrintLn " Locations/Group......" + U_City
SPrintLn " Security level.......", U_Sec
SPrintLn " Files downloaded.....", U_Fdl()
SPrintLn " Files uploaded.......", U_Ful()
SPrintLn " User record number...", U_RecNum(U_Name())
Color 143
SPrintLn "═══════════════════════════════════════════════════════════════════════════════"
AnsiPos 1, 18
SPrintLn " Press (Space) to acknowledge Page. Or (Esc) for abort Page."
Color 15
If (FileInf(PPEPath() + "PAGECHAT.BAT", 1) == 1) Then
AnsiPos 1, 7
STRING003 = "Paging. Please wait."
Gosub LABEL016
Shell 1, STRING003, PPEPath() + "PAGECHAT.BAT", ""
Print STRING003
Wait
Else
AnsiPos 1, 7
STRING003 = "Paging"
Gosub LABEL016
For INTEGER010 = 1 To 73
If (KInkey() == Chr(27)) Break
STRING003 = "."
Gosub LABEL016
If (FileInf(PPEPath() + "PAGECHAT.SND", 1) == 1) Then
FClose 0
FOpen 0, PPEPath() + "PAGECHAT.SND", 0, 0
While (Ferr(0) == 0) Do
If (KInkey() == " ") Goto LABEL006
If (KInkey() == Chr(27)) Goto LABEL005
If (Inkey() == Chr(27)) Goto LABEL004
FGet 0, STRING003
Sound STRING003
FGet 0, STRING003
Delay STRING003
If (KInkey() == Chr(27)) Goto LABEL005
EndWhile
FClose 0
Continue
Endif
For INTEGER005 = 1 To 1000 Step 100
If (KInkey() == " ") Goto LABEL006
If (KInkey() == Chr(27)) Goto LABEL005
If (Inkey() == Chr(27)) Goto LABEL004
Sound 1000 + INTEGER005
Next
For INTEGER005 = 1000 To 1 Step -100
If (KInkey() == " ") Goto LABEL006
If (KInkey() == Chr(27)) Goto LABEL005
If (Inkey() == Chr(27)) Goto LABEL004
Sound 1000 + INTEGER005
Next
If (KInkey() == Chr(27)) Break
Next
Endif
:LABEL005
Cls
Sound 0
STRING003 = "Sorry. Operator sleep or busy."
Gosub LABEL016
Delay 50
Cls
RestScrn
AnsiPos INTEGER016, INTEGER015
End
:LABEL006
FClose 0
Sound 0
If (INTEGER017 == 1) Then
Chat
End
Endif
Cls
STRING003 = "Chat Begin...."
Gosub LABEL016
If (INTEGER019 == 0) Then
STRING004 = U_RecNum(U_Name())
STRING004 = PPEPath() + "PAGECHAT." + STRING004
FAppend 0, STRING004, 2, 0
FPutLn 0, "=============================================================================="
FPutLn 0, "Chat begin :", Date(), " ", Time()
FPutLn 0, "------------------------------------------------------------------------------"
Endif
:LABEL007
Cls
If (INTEGER012 == 1) Then
PrintLn "@POFF@@X1F Page/Chat v1.0 Coded by M@X17o@X18o@X10n @X1FSha@X17d@X18o@X10w @X07"
Newline
PrintLn "@X08[@X0FSystem Operator@X08]"
PrintLn "@X0F═@X07══@X08════════════════════════════════════════════════════════════════════════════"
Newline
Newline
Newline
Newline
Newline
Newline
PrintLn "@X0F═@X07══@X08════════════════════════════════════════════════════════════════════════════"
PrintLn "@X08"
PrintLn "[@X0F@USER@@X08]"
PrintLn "@X0F═@X07══@X08════════════════════════════════════════════════════════════════════════════"
Newline
Newline
Newline
Newline
Newline
Newline
PrintLn "@X0F═@X07══@X08════════════════════════════════════════════════════════════════════════════@X07"
AnsiPos 1, 5
Endif
If (INTEGER012 == 2) Then
PrintLn "@POFF@@X1F Page/Chat v1.0 Coded by M@X17o@X18o@X10n @X1FSha@X17d@X18o@X10w @X07"
Newline
PrintLn "@X08[@X0FSystem Operator@X08] [@X0F@USER@@X08]"
PrintLn "@X0F══@X07══@X08══════════════════════════════════╦════════════════════════════════════@X07══@X0F══"
PrintLn "@X0F @X08║"
PrintLn "@X08 ║"
PrintLn "@X08 ║"
PrintLn "@X08 ║"
PrintLn "@X08 ║"
PrintLn "@X08 ║"
PrintLn "@X08 ║"
PrintLn "@X08 ║"
PrintLn "@X08 ║"
PrintLn "@X08 ║"
PrintLn "@X08 ║"
PrintLn "@X08 ║"
PrintLn "@X08 ║"
PrintLn "@X08 ║"
PrintLn "@X08 ║"
PrintLn "@X08 @X07║"
PrintLn "@X07 @X0F║"
AnsiPos 1, 5
Endif
If (INTEGER012 == 3) Then
PrintLn "@POFF@@X1F Page/Chat v1.0 Coded by M@X17o@X18o@X10n @X1FSha@X17d@X18o@X10w @X07"
Newline
PrintLn "@X08[@X0FSystem Operator@X08] @X07vs @X08[@X0F@USER@@X08]"
PrintLn "@X0F══@X07══@X08═══════════════════════════════════════════════════════════════════════@X07══@X0F══"
AnsiPos 1, 21
PrintLn "@X0F═@X07══@X08════════════════════════════════════════════════════════════════════════════@X07"
AnsiPos 1, 5
Endif
If (INTEGER012 == 1) Then
:LABEL008
STRING001 = ""
STRING001 = KInkey()
If (STRING001 <> "") Then
If (STRING001 == "@") Gosub LABEL017
If (STRING001 == "DOWN") Then
INTEGER004 = 1
INTEGER013 = 1
INTEGER014 = 0
INTEGER008 = 1
INTEGER009 = 0
INTEGER006 = 1
INTEGER007 = 0
INTEGER011 = 0
INTEGER001 = 0
Goto LABEL007
Endif
If (STRING001 == Chr(27)) Then
If (Strip(ScrText(1, INTEGER009 + 5, 79, 0), " ") <> "") FPutLn 0, "SYSOP : " + ScrText(1, INTEGER009 + 5, 79, 0)
If (Strip(ScrText(1, INTEGER007 + 15, 79, 0), " ") <> "") FPutLn 0, "USER : " + ScrText(1, INTEGER007 + 15, 79, 0)
FPutLn 0, "------------------------------------------------------------------------------"
FPutLn 0, "Chat ended :", Date(), " ", Time()
FPutLn 0, "=============================================================================="
FPutLn 0, ""
FClose 0
Cls
STRING003 = "Chat Ended...."
Gosub LABEL016
Cls
RestScrn
AnsiPos INTEGER016, INTEGER015
End
Endif
If (STRING001 == Chr(13)) Then
If (Strip(ScrText(1, INTEGER009 + 5, 79, 0), " ") <> "") FPutLn 0, "SYSOP : " + ScrText(1, INTEGER009 + 5, 79, 0)
INTEGER008 = 1
INTEGER009 = INTEGER009 + 1
If (INTEGER009 > 5) Gosub LABEL009
AnsiPos 1 + INTEGER008, 5 + INTEGER009
Goto LABEL008
Endif
If (STRING001 == Chr(8)) Then
If (INTEGER008 == 1) Goto LABEL008
AnsiPos INTEGER008, 5 + INTEGER009
Print " "
INTEGER008 = INTEGER008 - 1
Print STRING001
Goto LABEL008
Endif
If (INTEGER008 >= 78) Then
If (Strip(ScrText(1, INTEGER009 + 5, 79, 0), " ") <> "") FPutLn 0, "SYSOP : " + ScrText(1, INTEGER009 + 5, 79, 0)
INTEGER008 = 1
INTEGER009 = INTEGER009 + 1
If (INTEGER009 > 5) Gosub LABEL009
Endif
AnsiPos 1 + INTEGER008, 5 + INTEGER009
INTEGER008 = INTEGER008 + 1
Print STRING001
If (INTEGER008 > 79) Then
If (Strip(ScrText(1, INTEGER009 + 5, 79, 0), " ") <> "") FPutLn 0, "SYSOP : " + ScrText(1, INTEGER009 + 5, 79, 0)
INTEGER008 = 1
INTEGER009 = INTEGER009 + 1
Endif
Goto LABEL008
Endif
STRING001 = ""
STRING001 = MInkey()
If ((STRING001 <> "") && (Len(STRING001) == 1)) Then
If (STRING001 == Chr(13)) Then
If (Strip(ScrText(1, INTEGER007 + 15, 79, 0), " ") <> "") FPutLn 0, "USER : " + ScrText(1, INTEGER007 + 15, 79, 0)
INTEGER006 = 1
INTEGER007 = INTEGER007 + 1
If (INTEGER007 > 5) Gosub LABEL010
AnsiPos 1 + INTEGER006, 15 + INTEGER007
Goto LABEL008
Endif
If (STRING001 == Chr(8)) Then
If (INTEGER006 == 1) Goto LABEL008
AnsiPos INTEGER006, 15 + INTEGER007
Print " "
INTEGER006 = INTEGER006 - 1
Print STRING001
Goto LABEL008
Endif
If (INTEGER006 >= 78) Then
If (Strip(ScrText(1, INTEGER007 + 15, 79, 0), " ") <> "") FPutLn 0, "USER : " + ScrText(1, INTEGER007 + 15, 79, 0)
INTEGER006 = 1
INTEGER007 = INTEGER007 + 1
If (INTEGER007 > 5) Gosub LABEL010
Endif
AnsiPos 1 + INTEGER006, 15 + INTEGER007
INTEGER006 = INTEGER006 + 1
Print STRING001
If (INTEGER006 > 79) Then
If (Strip(ScrText(1, INTEGER007 + 15, 79, 0), " ") <> "") FPutLn 0, "USER : " + ScrText(1, INTEGER007 + 15, 79, 0)
INTEGER006 = 1
INTEGER007 = INTEGER007 + 1
Endif
Goto LABEL008
Endif
Goto LABEL008
:LABEL009
For INTEGER001 = 1 To 5
STRING003 = ScrText(1, 5 + INTEGER001, 79, 0)
AnsiPos 1, 4 + INTEGER001
Print " "
AnsiPos 1, 4 + INTEGER001
Print STRING003
Next
AnsiPos 1, 10
Print " "
AnsiPos 1, 4 + INTEGER001
INTEGER009 = 5
Return
:LABEL010
For INTEGER001 = 1 To 5
STRING003 = ScrText(1, 15 + INTEGER001, 79, 0)
AnsiPos 1, 14 + INTEGER001
Print " "
AnsiPos 1, 14 + INTEGER001
Print STRING003
Next
AnsiPos 1, 20
Print " "
AnsiPos 1, 14 + INTEGER001
INTEGER007 = 5
Return
Endif
If (INTEGER012 == 2) Then
:LABEL011
STRING001 = ""
STRING001 = KInkey()
If (STRING001 <> "") Then
If (STRING001 == "@") Gosub LABEL017
If (STRING001 == "DOWN") Then
INTEGER004 = 1
INTEGER008 = 1
INTEGER009 = 0
INTEGER006 = 1
INTEGER007 = 0
INTEGER013 = 1
INTEGER014 = 0
INTEGER011 = 0
INTEGER001 = 0
Goto LABEL007
Endif
If (STRING001 == Chr(27)) Then
If (Strip(ScrText(1, INTEGER009 + 5, 36, 0), " ") <> "") FPutLn 0, "SYSOP : " + ScrText(1, INTEGER009 + 5, 36, 0)
If (Strip(ScrText(41, INTEGER007 + 5, 36, 0), " ") <> "") FPutLn 0, "USER : " + ScrText(41, INTEGER007 + 5, 36, 0)
FPutLn 0, "------------------------------------------------------------------------------"
FPutLn 0, "Chat ended :", Date(), " ", Time()
FPutLn 0, "=============================================================================="
FPutLn 0, ""
FClose 0
Cls
STRING003 = "Chat Ended...."
Gosub LABEL016
Cls
RestScrn
AnsiPos INTEGER016, INTEGER015
End
Endif
If (STRING001 == Chr(13)) Then
If (Strip(ScrText(1, INTEGER009 + 5, 36, 0), " ") <> "") FPutLn 0, "SYSOP : " + ScrText(1, INTEGER009 + 5, 36, 0)
INTEGER008 = 1
INTEGER009 = INTEGER009 + 1
If (INTEGER009 > 16) Gosub LABEL012
AnsiPos 1 + INTEGER008, 5 + INTEGER009
Goto LABEL011
Endif
If (STRING001 == Chr(8)) Then
If (INTEGER008 == 1) Goto LABEL011
AnsiPos INTEGER008, 5 + INTEGER009
Print " "
INTEGER008 = INTEGER008 - 1
Print STRING001
Goto LABEL011
Endif
If (INTEGER008 >= 35) Then
If (Strip(ScrText(1, INTEGER009 + 5, 36, 0), " ") <> "") FPutLn 0, "SYSOP : " + ScrText(1, INTEGER009 + 5, 36, 0)
INTEGER008 = 1
INTEGER009 = INTEGER009 + 1
If (INTEGER009 > 16) Gosub LABEL012
Endif
AnsiPos 1 + INTEGER008, 5 + INTEGER009
INTEGER008 = INTEGER008 + 1
Print STRING001
If (INTEGER008 > 36) Then
If (Strip(ScrText(1, INTEGER009 + 5, 36, 0), " ") <> "") FPutLn 0, "SYSOP : " + ScrText(1, INTEGER009 + 5, 36, 0)
INTEGER008 = 1
INTEGER009 = INTEGER009 + 1
Endif
Goto LABEL011
Endif
STRING001 = ""
STRING001 = MInkey()
If ((STRING001 <> "") && (Len(STRING001) == 1)) Then
If (STRING001 == Chr(27)) End
If (STRING001 == Chr(13)) Then
If (Strip(ScrText(41, INTEGER007 + 5, 36, 0), " ") <> "") FPutLn 0, "USER : " + ScrText(41, INTEGER007 + 5, 36, 0)
INTEGER006 = 1
INTEGER007 = INTEGER007 + 1
If (INTEGER007 > 16) Gosub LABEL013
AnsiPos 41 + INTEGER006, 5 + INTEGER007
Goto LABEL011
Endif
If (STRING001 == Chr(8)) Then
If (INTEGER006 == 1) Goto LABEL011
AnsiPos 40 + INTEGER006, 5 + INTEGER007
Print " "
INTEGER006 = INTEGER006 - 1
Print STRING001
Goto LABEL011
Endif
If (INTEGER006 >= 35) Then
If (Strip(ScrText(41, INTEGER007 + 5, 36, 0), " ") <> "") FPutLn 0, "USER : " + ScrText(41, INTEGER007 + 5, 36, 0)
INTEGER006 = 1
INTEGER007 = INTEGER007 + 1
If (INTEGER007 > 16) Gosub LABEL013
Endif
AnsiPos 41 + INTEGER006, 5 + INTEGER007
INTEGER006 = INTEGER006 + 1
Print STRING001
If (INTEGER006 > 36) Then
If (Strip(ScrText(41, INTEGER007 + 5, 36, 0), " ") <> "") FPutLn 0, "USER : " + ScrText(41, INTEGER007 + 5, 36, 0)
INTEGER006 = 1
INTEGER007 = INTEGER007 + 1
Endif
Goto LABEL011
Endif
Goto LABEL011
:LABEL012
For INTEGER001 = 1 To 16
STRING003 = ScrText(1, 5 + INTEGER001, 36, 0)
AnsiPos 1, 4 + INTEGER001
Print " "
AnsiPos 1, 4 + INTEGER001
Print STRING003
Next
AnsiPos 1, 21
Print " "
AnsiPos 1, 4 + INTEGER001
INTEGER009 = 16
Return
:LABEL013
For INTEGER001 = 1 To 16
STRING003 = ScrText(41, 5 + INTEGER001, 36, 0)
AnsiPos 41, 4 + INTEGER001
Print " "
AnsiPos 41, 4 + INTEGER001
Print STRING003
Next
AnsiPos 41, 21
Print " "
AnsiPos 41, 4 + INTEGER001
INTEGER007 = 16
Return
Endif
If (INTEGER012 == 3) Then
:LABEL014
STRING001 = ""
STRING001 = KInkey()
If (STRING001 <> "") Then
If (STRING001 == "@") Gosub LABEL017
If (STRING001 == "DOWN") Then
INTEGER004 = 1
INTEGER008 = 1
INTEGER009 = 0
INTEGER006 = 1
INTEGER007 = 0
INTEGER011 = 0
INTEGER013 = 1
INTEGER014 = 0
INTEGER001 = 0
Goto LABEL007
Endif
If (STRING001 == Chr(27)) Then
If (Strip(ScrText(1, INTEGER014 + 5, 79, 0), " ") <> "") FPutLn 0, ScrText(1, INTEGER014 + 5, 79, 0)
FPutLn 0, "------------------------------------------------------------------------------"
FPutLn 0, "Chat ended :", Date(), " ", Time()
FPutLn 0, "=============================================================================="
FPutLn 0, ""
FClose 0
Cls
STRING003 = "Chat Ended...."
Gosub LABEL016
Cls
RestScrn
AnsiPos INTEGER016, INTEGER015
End
Endif
If (STRING001 == Chr(13)) Then
If (Strip(ScrText(1, INTEGER014 + 5, 79, 0), " ") <> "") FPutLn 0, ScrText(1, INTEGER014 + 5, 79, 0)
INTEGER013 = 1
INTEGER014 = INTEGER014 + 1
If (INTEGER014 > 15) Gosub LABEL015
AnsiPos 1 + INTEGER013, 5 + INTEGER014
Goto LABEL014
Endif
If (STRING001 == Chr(8)) Then
If (INTEGER013 == 1) Goto LABEL014
INTEGER002 = GetX() - 1
INTEGER003 = GetY()
AnsiPos INTEGER002, INTEGER003
Print " "
INTEGER013 = INTEGER013 - 1
Print STRING001
Goto LABEL014
Endif
If (INTEGER008 >= 76) Then
If (Strip(ScrText(1, INTEGER014 + 5, 79, 0), " ") <> "") FPutLn 0, ScrText(1, INTEGER014 + 5, 79, 0)
INTEGER013 = 1
INTEGER014 = INTEGER014 + 1
If (INTEGER014 > 15) Gosub LABEL015
Endif
AnsiPos 1 + INTEGER013, 5 + INTEGER014
INTEGER013 = INTEGER013 + 1
Print STRING001
If (INTEGER013 > 77) Then
If (Strip(ScrText(1, INTEGER014 + 5, 79, 0), " ") <> "") FPutLn 0, ScrText(1, INTEGER014 + 5, 79, 0)
INTEGER013 = 1
INTEGER014 = INTEGER014 + 1
Endif
Goto LABEL014
Endif
STRING001 = ""
STRING001 = MInkey()
If ((STRING001 <> "") && (Len(STRING001) == 1)) Then
If (STRING001 == Chr(27)) End
If (STRING001 == Chr(13)) Then
If (Strip(ScrText(1, INTEGER014 + 5, 79, 0), " ") <> "") FPutLn 0, ScrText(1, INTEGER014 + 5, 79, 0)
INTEGER013 = 1
INTEGER014 = INTEGER014 + 1
If (INTEGER014 > 15) Gosub LABEL015
AnsiPos 1 + INTEGER013, 5 + INTEGER014
Goto LABEL014
Endif
If (STRING001 == Chr(8)) Then
If (INTEGER013 == 1) Goto LABEL014
INTEGER002 = GetX() - 1
INTEGER003 = GetY()
AnsiPos INTEGER002, INTEGER003
Print " "
INTEGER013 = INTEGER013 - 1
Print STRING001
Goto LABEL014
Endif
If (INTEGER008 >= 76) Then
If (Strip(ScrText(1, INTEGER014 + 5, 79, 0), " ") <> "") FPutLn 0, ScrText(1, INTEGER014 + 5, 79, 0)
INTEGER013 = 1
INTEGER014 = INTEGER014 + 1
If (INTEGER014 > 15) Gosub LABEL015
Endif
AnsiPos 1 + INTEGER013, 5 + INTEGER014
INTEGER013 = INTEGER013 + 1
Print STRING001
If (INTEGER013 > 77) Then
If (Strip(ScrText(1, INTEGER014 + 5, 79, 0), " ") <> "") FPutLn 0, ScrText(1, INTEGER014 + 5, 79, 0)
INTEGER013 = 1
INTEGER014 = INTEGER014 + 1
Endif
Goto LABEL014
Endif
Goto LABEL014
:LABEL015
For INTEGER001 = 1 To 15
STRING003 = ScrText(1, 5 + INTEGER001, 79, 0)
AnsiPos 1, 4 + INTEGER001
Print " "
AnsiPos 1, 4 + INTEGER001
Print STRING003
Next
AnsiPos 1, 20
Print " "
AnsiPos 1, 4 + INTEGER001
INTEGER014 = 15
Return
Endif
:LABEL016
If (INTEGER020 == 1) Then
INTEGER021 = 0
Else
INTEGER021 = 2
Endif
INTEGER002 = GetX()
INTEGER003 = GetY()
INTEGER001 = 0
While (((1 < 0) && (INTEGER001 >= Len(STRING003) - 1)) || ((1 >= 0) && (INTEGER001 <= Len(STRING003) - 1))) Do
If (KInkey() <> "") Then
INTEGER022 = INTEGER021
INTEGER021 = 0
Endif
AnsiPos INTEGER002 + INTEGER001, INTEGER003
Color 8
Print Left(Right(STRING003, Len(STRING003) - INTEGER001), 1)
Delay INTEGER021
AnsiPos INTEGER002 + INTEGER001, INTEGER003
Color 7
Print Left(Right(STRING003, Len(STRING003) - INTEGER001), 1)
Delay INTEGER021
AnsiPos INTEGER002 + INTEGER001, INTEGER003
Color 15
Print Left(Right(STRING003, Len(STRING003) - INTEGER001), 1)
Delay INTEGER021
INTEGER001 = INTEGER001 + 1
EndWhile
If (INTEGER022 <> 0) Then
INTEGER021 = INTEGER022
INTEGER022 = 0
Endif
Return
:LABEL017
AnsiPos 1, 22
Color 31
SPrint "1 - Horizontal chat. 2 - Vertical chat. 3 - No split chat. 4 - Clear screen."
Color 7
:LABEL018
STRING003 = Inkey()
If ((((STRING003 <> "1") && (STRING003 <> "2")) && (STRING003 <> "3")) && (STRING003 <> "4")) Goto LABEL018
AnsiPos 1, 22
SPrintLn " "
If (STRING003 == "4") Then
INTEGER004 = 1
INTEGER008 = 1
INTEGER009 = 0
INTEGER006 = 1
INTEGER013 = 1
INTEGER014 = 0
INTEGER007 = 0
INTEGER011 = 0
INTEGER001 = 0
Goto LABEL007
Endif
FPutLn 0, "[", STRING003, "]---------------------------------------------------------------------------"
INTEGER012 = STRING003
INTEGER004 = 1
INTEGER013 = 1
INTEGER014 = 0
INTEGER008 = 1
INTEGER009 = 0
INTEGER006 = 1
INTEGER007 = 0
INTEGER011 = 0
INTEGER001 = 0
Goto LABEL007
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 9 End
; 16 Cls
; 1 Wait
; 16 Color
; 141 Goto
; 190 Let
; 42 Print
; 36 PrintLn
; 141 If
; 2 FOpen
; 1 FAppend
; 8 FClose
; 3 FGet
; 39 FPutLn
; 1 GetUser
; 2 Log
; 26 Gosub
; 6 Return
; 5 Delay
; 16 Newline
; 1 Shell
; 62 AnsiPos
; 1 FreshLine
; 1 SaveScrn
; 6 RestScrn
; 7 Sound
; 1 Chat
; 1 SPrint
; 10 SPrintLn
;
;
; ■ Functions used :
;
; 3 -
; 163 +
; 17 -
; 76 ==
; 36 <>
; 10 <
; 11 <=
; 18 >
; 29 >=
; 70 !
; 28 &&
; 11 ||
; 10 Len(
; 4 Upper()
; 5 Left()
; 4 Right()
; 2 Ferr()
; 29 Chr()
; 4 Date()
; 5 Time()
; 4 U_Name()
; 1 U_Ful()
; 1 U_Fdl()
; 23 Strip()
; 5 Inkey()
; 2 PCBDat()
; 8 PPEPath()
; 2 ReadLine()
; 1 SysopSec()
; 1 CurSec()
; 1 GetToken()
; 5 GetX()
; 5 GetY()
; 4 FileInf()
; 13 KInkey()
; 3 MInkey()
; 2 U_RecNum()
; 51 ScrText()
;
;------------------------------------------------------------------------------
;
; Analysis flags : Sds
;
; 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
;
; 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()
;
; s - Sysop level access ■ 5
; Program is reading the sysop access level, this may be normal
; but still it is very suspect. It is the best way to give a user
; all priviledges. Check!
; ■ Search for : SYSOPSEC()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 9 For/Next
; 3 While/EndWhile
; 58 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------