home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carsten's PPE Collection
/
Carstens_PPE_Collection_2007.zip
/
S
/
SKCHAT13.ZIP
/
SKCHAT.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-11-01
|
6KB
|
343 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
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
String TSTRING001(100)
String TSTRING002(100,20)
String TSTRING003(50)
String TSTRING004(20)
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
;------------------------------------------------------------------------------
BOOLEAN001 = 0
GetUser
INTEGER003 = 0
INTEGER002 = 0
INTEGER009 = 0
If (MinLeft() < 5) Then
PrintLn
PrintLn "Sorry @FIRST@, not enough time remaining to chat."
PrintLn
End
Endif
BOOLEAN001 = 0
If (Exist(PPEPath() + "SKCHAT.DAT")) Goto LABEL001
Log "SKCHAT.DAT File Not Found!", 0
PrintLn
PrintLn "Error in SkChat setup! Please notify your Sysop."
PrintLn
End
:LABEL001
Log "Entered SKCHAT at " + Left(Time(), 5), 0
Cls
Print "@X0F"
STRING009 = Mixed(U_Name())
STRING009 = Left(STRING009, InStr(STRING009, " ") - 1)
STRING008 = "Gerry Schechter"
STRING005 = "Sy Kopath Chat v1.3 - (C) 1994 - " + STRING008
If (!BOOLEAN001) PrintLn Space((80 - Len(STRING005)) / 2) + STRING005
Print "@X0E"
BOOLEAN001 = 0
If (BOOLEAN001) Then
STRING005 = "Registered to: " + ReadLine(PCBDat(), 94)
STRING007 = ReadLine(PCBDat(), 94)
FClose -1
GetToken INTEGER005
If (INTEGER005 == 0) Then
INTEGER005 = 300
Else
INTEGER005 = INTEGER005 * 60
Endif
GetToken STRING010
STRING010 = Mixed(STRING010)
If (STRING010 == "") STRING010 = "Sy Kopath"
Else
Delay 10
STRING007 = "UNREGISTERED VERSION"
STRING005 = "Registered to: " + STRING007
PrintLn Space((80 - Len(STRING005)) / 2) + STRING005
STRING010 = "Sy Kopath"
Delay 20
INTEGER005 = 300
Endif
INTEGER001 = Time()
If (BOOLEAN001) Goto LABEL003
If ((Left(STRING007, 1) <> "U") || (Right(STRING007, 1) <> "N")) Then
:LABEL002
PrintLn "@BEEP@ @X0C"
STRING005 = "Unauthorized Modification Of SKCHAT!"
PrintLn Space((80 - Len(STRING005)) / 2) + STRING005
Print Chr(7)
Log "Unauthorized Modification Of SKCHAT!", 0
Delay 30
Else
:LABEL003
DefColor
PrintLn
Print "Paging ", STRING010, ". One moment please"
For INTEGER007 = 1 To 100
TSTRING001(INTEGER007) = ""
Next
Print "."
For INTEGER007 = 1 To 50
TSTRING003(INTEGER007) = ""
Next
For INTEGER007 = 1 To 20
TSTRING004(INTEGER007) = ""
Next
If ((Left(STRING008, 1) <> "G") || (Right(STRING008, 1) <> "r")) Goto LABEL002
If (!BOOLEAN001 && (Mid(STRING007, 2, 1) <> "N")) Goto LABEL002
If (!BOOLEAN001 && (Mid(STRING007, 5, 1) <> "G")) Goto LABEL002
If (!BOOLEAN001 && ((Left(STRING010, 1) <> "S") || (Right(STRING010, 1) <> "h"))) Goto LABEL002
:LABEL004
Inc INTEGER002
STRING005 = ""
STRING005 = ReadLine(PPEPath() + "SKCHAT.DAT", INTEGER002)
If (STRING005 == "") Then
FClose -1
PrintLn
Else
If (INTEGER002 % 30 == 0) Print "."
If (Left(STRING005, 1) == ";") Goto LABEL004
If (Left(STRING005, 1) == "@") Then
STRING006 = "@"
INTEGER004 = 1
Goto LABEL004
Endif
If (Left(STRING005, 1) == "$") Then
STRING006 = "$"
INTEGER004 = 1
Inc INTEGER003
TSTRING001(INTEGER003) = Right(STRING005, Len(STRING005) - 1)
TSTRING001(INTEGER003) = Upper(TSTRING001(INTEGER003))
Goto LABEL004
Endif
If (Left(STRING005, 1) == "!") Then
STRING006 = "!"
INTEGER004 = 1
Goto LABEL004
Endif
If (STRING006 == "@") Then
TSTRING004(INTEGER004) = ReplaceStr(STRING005, "@FIRST@", STRING009)
Inc INTEGER004
Goto LABEL004
Endif
If (STRING006 == "$") Then
TSTRING002(INTEGER003, INTEGER004) = ReplaceStr(STRING005, "@FIRST@", STRING009)
Inc INTEGER004
Goto LABEL004
Endif
If (STRING006 == "!") Then
TSTRING003(INTEGER004) = ReplaceStr(STRING005, "@FIRST@", STRING009)
Inc INTEGER004
Endif
Goto LABEL004
Endif
PrintLn "@POFF@"
:LABEL005
INTEGER007 = Random(19) + 1
If (TSTRING004(INTEGER007) == "") Goto LABEL005
Print STRING010, " > "
STRING006 = ReplaceStr(TSTRING004(INTEGER007), "@SYSTIME@", Left(Time(), 5))
For INTEGER006 = 1 To Len(STRING006)
Print Mid(STRING006, INTEGER006, 1)
Delay Random(2) + 1
Next
PrintLn
:LABEL006
PrintLn
Print "@FIRST@ > "
STRING006 = ""
:LABEL007
STRING005 = ""
STRING005 = Inkey()
If (STRING005 == "") Goto LABEL007
Print STRING005
If (STRING005 == Chr(8)) Then
Print " "
STRING006 = Left(STRING006, Len(STRING006) - 1)
If (GetX() > Len(Left(U_Name(), InStr(U_Name(), " ") - 1)) + 4) Backup 1
Goto LABEL007
Endif
STRING005 = Upper(STRING005)
STRING006 = STRING006 + STRING005
If (STRING005 <> Chr(13)) Goto LABEL007
If ((STRING005 == Chr(13)) && (STRING006 == Chr(13))) Then
Inc INTEGER009
If (INTEGER009 > 3) Goto LABEL010
Else
INTEGER009 = 0
Endif
PrintLn
PrintLn
STRING006 = Left(STRING006, Len(STRING006) - 1)
STRING006 = Upper(STRING006)
If (((STRING006 == "Q") || (STRING006 == "G")) || (STRING006 == "X")) Goto LABEL010
If ((Time() - INTEGER001 > INTEGER005) || (MinLeft() < 5)) Then
PrintLn STRING010, " > I gotta go now. Let's chat again tomorrow."
Else
Print STRING010, " > "
For INTEGER007 = 1 To 100
If (InStr(STRING006, TSTRING001(INTEGER007)) <> 0) Break
Next
:LABEL008
If (INTEGER007 == 101) Then
INTEGER008 = Random(49) + 1
If (TSTRING003(INTEGER008) == "") Goto LABEL008
STRING006 = ReplaceStr(TSTRING003(INTEGER008), "@SYSTIME@", Left(TimeAp(Time()), 5))
For INTEGER006 = 1 To Len(STRING006)
Print Mid(STRING006, INTEGER006, 1)
Delay Random(2) + 1
Next
PrintLn
Goto LABEL006
Endif
:LABEL009
INTEGER008 = Random(19) + 1
If (TSTRING002(INTEGER007, INTEGER008) == "") Goto LABEL009
STRING006 = ReplaceStr(TSTRING002(INTEGER007, INTEGER008), "@SYSTIME@", Left(TimeAp(Time()), 5))
For INTEGER006 = 1 To Len(STRING006)
Print Mid(STRING006, INTEGER006, 1)
Delay Random(2) + 1
Next
PrintLn
Goto LABEL006
Endif
:LABEL010
PrintLn
PrintLn
PrintLn "Nice chatting with you @FIRST@."
If (BOOLEAN001) Then
Goto LABEL011
Endif
Delay 20
PrintLn "@BEEP@ @X0F"
PrintLn "If you enjoyed this program, please ask your Sysop to register it!"
Delay 30
Endif
:LABEL011
INTEGER007 = Date()
If (!BOOLEAN001 && (INTEGER007 % 7 == 0)) Log "Please register this program!", 0
Log "Exited SKCHAT at " + Left(Time(), 5), 0
PrintLn "@PON@"
End
STRING005 = " Registered To: UNREGISTERED VERSION "
STRING005 = "Sy Kopath Chat v1.3 - (C) 1994 - Gerry Schechter"
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 3 End
; 1 Cls
; 61 Goto
; 70 Let
; 14 Print
; 26 PrintLn
; 43 If
; 2 FClose
; 1 GetUser
; 1 DefColor
; 5 Log
; 8 Delay
; 6 Inc
; 2 GetToken
; 1 Backup
;
;
; ■ Functions used :
;
; 2 -
; 1 *
; 3 /
; 2 %
; 25 +
; 9 -
; 23 ==
; 10 <>
; 9 <
; 7 <=
; 3 >
; 14 >=
; 30 !
; 19 &&
; 13 ||
; 13 Len(
; 3 Upper()
; 5 Mid()
; 16 Left()
; 4 Right()
; 3 Space()
; 5 Chr()
; 3 InStr()
; 6 Random()
; 1 Date()
; 7 Time()
; 3 U_Name()
; 2 TimeAp()
; 1 Inkey()
; 2 PCBDat()
; 2 PPEPath()
; 3 ReadLine()
; 2 MinLeft()
; 1 Exist()
; 1 GetX()
; 6 ReplaceStr()
; 2 Mixed()
;
;------------------------------------------------------------------------------
;
; Analysis flags : d
;
; 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
;
; 7 For/Next
; 0 While/EndWhile
; 16 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------