home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
PCBOARD
/
MATCHAT.ZIP
/
SCHAT.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1993-11-25
|
9KB
|
535 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 1.OO (plain) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Boolean BOOLEAN002
Boolean BOOLEAN003
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
Integer INTEGER011
String STRING001
String STRING002
String STRING003
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
;------------------------------------------------------------------------------
SaveScrn
GetUser
PageOff
STRING006 = Chr(86) + Chr(105) + Chr(71) + Chr(105) + Chr(108) + Chr(97) + Chr(110) + Chr(116) + Chr(101)
STRING005 = "─────────────────────────────────────────────────────────────────────────────"
STRING011 = ReadLine(PPEPath() + "schat.cnf", 1)
STRING012 = ReadLine(PPEPath() + "schat.cnf", 2)
STRING013 = ReadLine(PPEPath() + "schat.cnf", 3)
Sound 0
STRING016 = "@X08@X07@X0F"
STRING017 = " ────────────── Super Split Screen Chat PPE v1.0 by " + STRING006 + " ──────────────@X00"
INTEGER007 = Time()
STRING018 = Chr(64) + Chr(88) + Chr(48) + Chr(67) + Chr(32) + Chr(60) + Chr(85) + Chr(110) + Chr(114) + Chr(101) + Chr(103) + Chr(105) + Chr(115) + Chr(116) + Chr(101) + Chr(114) + Chr(101) + Chr(100) + Chr(62) + Chr(32)
INTEGER010 = 1
INTEGER011 = ReadLine(PPEPath() + "schat.cnf", 7)
STRING019 = Lower(ReadLine(PCBDat(), 2)) + Lower(ReadLine(PCBDat(), 94))
For INTEGER005 = 1 To Len(STRING019) Step 3
INTEGER010 = Left(INTEGER010 * Asc(Mid(STRING019, INTEGER005, 1)), 6)
Next
If (INTEGER010 == INTEGER011) Then
BOOLEAN003 = 1
Endif
If (Exist(PPEPath() + "chatlog." + String(PcbNode()))) Then
FAppend 1, PPEPath() + "chatlog." + String(PcbNode()), 1, 3
FPutLn 1, STRING005
Else
FCreate 1, PPEPath() + "chatlog." + String(PcbNode()), 1, 3
Endif
FPutLn 1, "Chat initiated with " + U_Name() + " on " + String(Date()) + " at " + String(Time())
FPutLn 1
Cls
For INTEGER005 = 1 To 9 Step 4
AnsiPos 1, 12
Print Mid(STRING016, INTEGER005, 4) + STRING017
Delay 4
Next
:LABEL001
INTEGER001 = 1
INTEGER002 = 3
INTEGER003 = 1
INTEGER004 = 13
STRING007 = ""
STRING008 = ""
BOOLEAN001 = 0
If (Lower(ReadLine(PPEPath() + "schat.cnf", 5)) == "top") Then
STRING014 = ""
STRING015 = ""
Else
STRING015 = ""
STRING014 = ""
Endif
Print "@POFF@" + STRING013
Cls
If ((!Exist(PPEPath() + "schat.top") || !Exist(PPEPath() + "schat.bot")) || !Exist(PPEPath() + "schat.mid")) Then
PrintLn STRING011 + "┌──────────────┤ " + STRING012 + "Super Split Screen Chat PPE v1.0 " + STRING013 + "by " + STRING012 + STRING006 + STRING011 + " ├──────────────┐"
Print "└" + STRING005 + "┘"
Newlines 10
Print "──" + STRING005
Newlines 10
PrintLn "┌" + STRING005 + "┐"
Print "└──────────┤ (" + STRING012 + "Ctrl" + STRING011 + ") " + STRING013 + "+ " + STRING011 + "(" + STRING012 + "C" + STRING011 + ")" + STRING013 + "olor, " + STRING011 + "(" + STRING012 + "R" + STRING011 + ")" + STRING013 + "edraw, "
Print STRING011 + "(" + STRING012 + "T" + STRING011 + ")" + STRING013 + "ype, or " + STRING011 + "(" + STRING012 + "Esc" + STRING011 + ")" + STRING013 + " to Quit" + STRING011 + " ├───────────┘"
Else
PrintLn ReadLine(PPEPath() + "schat.top", 1)
Print ReadLine(PPEPath() + "schat.top", 2)
Newlines 10
Print ReadLine(PPEPath() + "schat.mid", 1)
Newlines 10
PrintLn ReadLine(PPEPath() + "schat.bot", 1)
Print ReadLine(PPEPath() + "schat.bot", 2)
Endif
AnsiPos 6, 12
Print STRING013 + " " + STRING014 + " " + STRING012 + ReadLine(PCBDat(), 2) + STRING013 + " " + STRING014 + " "
AnsiPos 69 - Len(U_Name()), 12
Print STRING013 + " " + STRING015 + " " + STRING012
Tokenize U_Name()
While (TokCount() > 0) Do
STRING003 = GetToken()
Print Left(STRING003, 1) + Lower(Right(STRING003, Len(STRING003) - 1)) + " "
EndWhile
Print STRING013 + STRING015 + " "
AnsiPos 32, 12
If (!BOOLEAN003) Print STRING018 + STRING013
AnsiPos INTEGER001, INTEGER002
If (Lower(ReadLine(PPEPath() + "schat.cnf", 5)) == "top") Then
:LABEL002
If (BOOLEAN002) Goto LABEL003
STRING002 = KInkey()
STRING001 = MInkey()
If (STRING002 <> "") Gosub LABEL006
If (STRING001 <> "") Gosub LABEL009
Goto LABEL002
:LABEL003
Else
:LABEL004
If (BOOLEAN002) Goto LABEL005
STRING001 = KInkey()
STRING002 = MInkey()
If (STRING002 <> "") Gosub LABEL006
If (STRING001 <> "") Gosub LABEL009
Goto LABEL004
Endif
:LABEL005
If (STRING007 <> "") FPutLn 1, STRING007
If (STRING008 <> "") FPutLn 1, "-" + STRING008
FClose 1
Cls
For INTEGER005 = 9 To 1 Step -4
AnsiPos 1, 12
Print Mid(STRING016, INTEGER005, 4) + STRING017
Delay 4
Next
RestScrn
If (Lower(ReadLine(PPEPath() + "schat.cnf", 4)) <> "yes") Delete PPEPath() + "chatlog." + String(PcbNode())
If (Lower(ReadLine(PPEPath() + "schat.cnf", 6)) == "yes") Then
INTEGER008 = Time()
INTEGER009 = (INTEGER008 - INTEGER007) / 60
If (INTEGER009 < 0) INTEGER009 = INTEGER009 + 86400
AdjTime INTEGER009
Endif
KbdStuff Chr(27)
End
:LABEL006
If (Asc(STRING002) < 32) Then
Select Case (STRING002)
Case Chr(3)
BOOLEAN001 = !BOOLEAN001
Print STRING013
Case Chr(7)
Beep
Case Chr(8), 1
STRING007 = Left(STRING007, Len(STRING007) - 1)
AnsiPos INTEGER001, INTEGER002
Print Chr(8) + " " + Chr(8)
Dec INTEGER001
Case Chr(13)
INTEGER001 = 1
Inc INTEGER002
If (INTEGER002 > 11) Then
Gosub LABEL012
INTEGER001 = 1
If (STRING007 <> "") Inc INTEGER002
Endif
AnsiPos INTEGER001, INTEGER002
If (STRING007 <> "") FPutLn 1, STRING007
STRING007 = ""
Case Chr(18)
Goto LABEL001
Case Chr(20), "top"
Gosub LABEL014
Case Chr(27)
BOOLEAN002 = 1
End Select
Else
STRING007 = STRING007 + STRING002
AnsiPos INTEGER001, INTEGER002
If (BOOLEAN001) Color Random(14) + 1
Print STRING002
Inc INTEGER001
If (INTEGER001 == 80) Then
INTEGER006 = 79
While (INTEGER006 > 0) Do
If (Mid(STRING007, INTEGER006, 1) == " ") Then
INTEGER001 = 1
If (INTEGER002 == 11) Then
Gosub LABEL012
INTEGER001 = 1
Inc INTEGER002
Goto LABEL007
Endif
Inc INTEGER002
:LABEL007
AnsiPos INTEGER006, INTEGER002 - 1
ClrEol
AnsiPos INTEGER001, INTEGER002
STRING009 = Right(STRING007, 79 - INTEGER006)
FPutLn 1, Left(STRING007, INTEGER006)
If (BOOLEAN001) Then
For INTEGER005 = 1 To Len(STRING009)
Color Random(14) + 1
Print Mid(STRING009, INTEGER005, 1)
Next
Goto LABEL008
Endif
Print STRING009
:LABEL008
INTEGER001 = 80 - INTEGER006
INTEGER006 = 0
Continue
Endif
Dec INTEGER006
If (INTEGER006 == 0) Then
INTEGER001 = 1
Inc INTEGER002
If (INTEGER002 > 11) Then
Gosub LABEL012
INTEGER001 = 1
Inc INTEGER002
Endif
AnsiPos INTEGER001, INTEGER002
STRING009 = ""
FPutLn 1, STRING007
Endif
EndWhile
STRING007 = STRING009
Endif
Endif
Return
:LABEL009
If (Asc(STRING001) < 32) Then
Select Case (STRING001)
Case Chr(3)
BOOLEAN001 = !BOOLEAN001
Print STRING013
Case Chr(7)
Beep
Case Chr(8), 1
STRING008 = Left(STRING008, Len(STRING008) - 1)
AnsiPos INTEGER003, INTEGER004
Print Chr(8) + " " + Chr(8)
Dec INTEGER003
Case Chr(13)
INTEGER003 = 1
Inc INTEGER004
If (INTEGER004 > 21) Then
Gosub LABEL013
INTEGER003 = 1
If (STRING008 <> "") Inc INTEGER004
Endif
AnsiPos INTEGER003, INTEGER004
If (STRING008 <> "") FPutLn 1, "-" + STRING008
STRING008 = ""
Case Chr(18)
Goto LABEL001
Case Chr(20), "bottom"
Gosub LABEL014
Case Chr(27)
BOOLEAN002 = 1
End Select
Else
STRING008 = STRING008 + STRING001
AnsiPos INTEGER003, INTEGER004
If (BOOLEAN001) Color Random(14) + 1
Print STRING001
Inc INTEGER003
If (INTEGER003 == 80) Then
INTEGER006 = 79
While (INTEGER006 > 0) Do
If (Mid(STRING008, INTEGER006, 1) == " ") Then
INTEGER003 = 1
If (INTEGER004 == 21) Then
Gosub LABEL013
INTEGER003 = 1
Inc INTEGER004
Goto LABEL010
Endif
Inc INTEGER004
:LABEL010
AnsiPos INTEGER006, INTEGER004 - 1
ClrEol
AnsiPos INTEGER003, INTEGER004
STRING010 = Right(STRING008, 79 - INTEGER006)
FPutLn 1, "-" + Left(STRING008, INTEGER006)
If (BOOLEAN001) Then
For INTEGER005 = 1 To Len(STRING010)
Color Random(14) + 1
Print Mid(STRING010, INTEGER005, 1)
Next
Goto LABEL011
Endif
Print STRING010
:LABEL011
INTEGER003 = 80 - INTEGER006
INTEGER006 = 0
Continue
Endif
Dec INTEGER006
If (INTEGER006 == 0) Then
INTEGER003 = 1
Inc INTEGER004
If (INTEGER004 > 21) Then
Gosub LABEL013
INTEGER003 = 1
Inc INTEGER004
Endif
AnsiPos INTEGER003, INTEGER004
STRING010 = ""
FPutLn 1, "-" + Left(STRING008, Len(STRING008) - 1)
Endif
EndWhile
STRING008 = STRING010
Endif
Endif
Return
:LABEL012
Print STRING013
For INTEGER005 = 3 To 11
AnsiPos 1, INTEGER005
ClrEol
Next
AnsiPos 1, 3
If (BOOLEAN001) Then
For INTEGER005 = 1 To Len(STRING007)
Color Random(14) + 1
Print Mid(STRING007, INTEGER005, 1)
Next
Else
Print STRING007
Endif
INTEGER001 = GetX()
INTEGER002 = GetY()
AnsiPos INTEGER001, INTEGER002
Return
:LABEL013
Print STRING013
For INTEGER005 = 13 To 21
AnsiPos 1, INTEGER005
ClrEol
Next
AnsiPos 1, 13
If (BOOLEAN001) Then
For INTEGER005 = 1 To Len(STRING008)
Color Random(14) + 1
Print Mid(STRING008, INTEGER005, 1)
Next
Else
Print STRING008
Endif
INTEGER003 = GetX()
INTEGER004 = GetY()
AnsiPos INTEGER003, INTEGER004
Return
:LABEL014
AnsiPos 79, 23
SaveScrn
AnsiPos 11, 6
PrintLn STRING011 + "┌" + Left(STRING005, 58) + "┐"
AnsiPos 11, 7
PrintLn "│" + STRING013 + " " + STRING011 + "│"
AnsiPos 11, 8
PrintLn "└" + Left(STRING005, 58) + "┘"
AnsiPos 13, 7
Print STRING013 + "File: "
STRING003 = ""
STRING004 = ""
INTEGER005 = 0
While (STRING003 <> Chr(13)) Do
STRING003 = KInkey()
If (STRING003 <> Chr(13)) Then
If ((STRING003 == Chr(8)) && (INTEGER005 > 0)) Then
Print Chr(8) + " " + Chr(8)
Dec INTEGER005
STRING004 = Left(STRING004, Len(STRING004) - 1)
Continue
Endif
If ((Asc(STRING003) > 32) && (INTEGER005 < 50)) Then
STRING004 = STRING004 + STRING003
Print STRING003
Inc INTEGER005
Endif
Endif
EndWhile
If (Exist(STRING004)) Then
Print "@CLS@@POFF@"
DispFile STRING004, 0
Newline
Print "@WAIT@"
Endif
RestScrn
AnsiPos INTEGER001, INTEGER002
Return
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 End
; 3 Cls
; 4 ClrEol
; 6 Color
; 101 Goto
; 95 Let
; 36 Print
; 7 PrintLn
; 72 If
; 1 DispFile
; 1 FCreate
; 1 FAppend
; 1 FClose
; 11 FPutLn
; 1 GetUser
; 1 Delete
; 1 AdjTime
; 12 Gosub
; 5 Return
; 2 Delay
; 15 Inc
; 5 Dec
; 1 Newline
; 4 Newlines
; 1 Tokenize
; 2 Beep
; 1 KbdStuff
; 30 AnsiPos
; 2 SaveScrn
; 2 RestScrn
; 1 Sound
; 1 PageOff
;
;
; ■ Functions used :
;
; 3 -
; 1 *
; 1 /
; 174 +
; 13 -
; 29 ==
; 13 <>
; 13 <
; 9 <=
; 11 >
; 18 >=
; 63 !
; 24 &&
; 11 ||
; 16 Len(
; 9 Lower()
; 9 Mid()
; 10 Left()
; 3 Right()
; 53 Chr()
; 4 Asc()
; 6 Random()
; 1 Date()
; 3 Time()
; 3 U_Name()
; 6 String()
; 3 PCBDat()
; 22 PPEPath()
; 4 PcbNode()
; 18 ReadLine()
; 1 GetToken()
; 5 Exist()
; 2 GetX()
; 2 GetY()
; 3 KInkey()
; 2 MInkey()
; 1 TokCount()
;
;------------------------------------------------------------------------------
;
; Analysis flags : Ad
;
; 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
;
; 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
;
; 9 For/Next
; 4 While/EndWhile
; 28 If/Then or If/Then/Else
; 2 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------