home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
PCBOARD
/
GTOCBN10.ZIP
/
GTOCBN2.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1993-12-08
|
8KB
|
452 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
;------------------------------------------------------------------------------
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
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
Time TIME001
Time TIME002
Time TIME003
Time TIME004
;------------------------------------------------------------------------------
STRING008 = ""
:LABEL001
Newline
Print "@X0ENode CHAT: (G)roup, (U)navailable, (H)elp, (Enter)=none? "
InputStr "_", STRING008, 7, 50, Mask_Ascii(), 4096 + 64
Tokenize STRING008
Select Case (Upper(STRING008))
Case "G"
:LABEL002
Newline
PrintLn "@X0BEnter channel number (1-255), (L)ist channels or (Q)uit chat? (@X071 @X0B)"
Newline
PrintLn "@X0FJoining Channel #1."
Newline
Goto LABEL004
Case "A"
Newline
PrintLn "@X0AAvailable for CHAT"
End
Case "U"
Newline
PrintLn "@X0AUnavailable for CHAT"
End
Case "H"
If (Exist(PPEPath() + "HELP1.ANS")) DispFile PPEPath() + "HELP1.ANS", 4 + 2 + 1
Goto LABEL001
Case "?"
If (Exist(PPEPath() + "HELP1.ANS")) DispFile PPEPath() + "HELP1.ANS", 4 + 2 + 1
Goto LABEL001
End Select
Newline
PrintLn "@X08C@X07B@X0FN@X07.@X08P@X07P@X0FE @X08v@X071.@X0Fo @X08Wr@X07it@X0Ften @X08b@X07y @X08V@X07o@X0Fc @X08[@X07G@X0FT@X07o@X08]"
End
:LABEL003
PrintLn ""
PrintLn "@X0F @X08(@X07#@X08) St@X07at@X0Fus @X08U@X07se@X0Fr"
PrintLn "@X0F @X04─@X0C─@X04─ ────@X0C────@X07──@X0F─@X07──@X0C────@X04──── ─────@X0C─────@X07───@X0F───@X07───@X0C─────@X04─────"
PrintLn "@X04 @X0F1 Available for CHAT @USER@ (@CITY@)"
PrintLn "@X0F 2 Available for CHAT SYSOP (@BOARDNAME@)"
PrintLn "@X0F 3 Transferring a File @LASTCALLERSYSTEM@"
PrintLn "@X0F @X04─@X0C─@X04─ ────@X0C────@X07──@X0F─@X07──@X0C────@X04──── ─────@X0C─────@X07───@X0F───@X07───@X0C─────@X04─────"
STRING009 = ""
Newline
Newline
:LABEL004
Print "@X0A(@X0C@TIMELEFT@ @X0Amin. left) (H)elp, Chat Command? "
InputStr "_", STRING009, 7, 50, Mask_Ascii(), 4096 + 64
Tokenize STRING009
Select Case (Upper(STRING009))
Case "WHO"
Goto LABEL003
Case "SHOW"
Goto LABEL003
Case "CALL"
Goto LABEL008
Case "X"
PrintLn "@X0FExpert Mode now on @FIRST@ . . ."
Newline
Goto LABEL004
Case "CHANNEL"
Goto LABEL002
Case "TOPIC"
PrintLn "@X0BTopic is unchangeable!"
Newline
Goto LABEL004
Case "PRIVATE"
PrintLn "@X0BChannel 1 cannot be made private."
Newline
Goto LABEL004
Case "MENU"
If (Exist(PPEPath() + "MENU.PCB")) DispFile PPEPath() + "MENU.PCB", 4 + 2 + 1
Goto LABEL004
Case "Q"
Newline
PrintLn "@X0FNode CHAT ended at @SYSTIME@"
Newline
PrintLn "@X08C@X07B@X0FN@X07.@X08P@X07P@X0FE @X08v@X071.@X0Fo @X08Wr@X07it@X0Ften @X08b@X07y @X08V@X07o@X0Fc @X08[@X07G@X0FT@X07o@X08]"
End
Case "SILENT"
PrintLn "@X0BSilent Mode is now on."
Newline
Goto LABEL004
Case "QUIT"
Newline
PrintLn "@X0FNode CHAT ended at @SYSTIME@"
Newline
PrintLn "@X08C@X07B@X0FN@X07.@X08P@X07P@X0FE @X08v@X071.@X0Fo @X08Wr@X07it@X0Ften @X08b@X07y @X08V@X07o@X0Fc @X08[@X07G@X0FT@X07o@X08]"
End
Case "BYE"
Hangup
Case "G"
STRING013 = ""
Newline
Print "@X07Proceed with Logoff? "
TIME004 = Time() + 10
While ((STRING013 == "") && (Time() < TIME004)) Do
STRING013 = Inkey()
EndWhile
If (Upper(STRING013) == "Y") Then
Hangup
Goto LABEL005
Endif
:LABEL005
Newline
Newline
Goto LABEL004
Case "ECHO"
PrintLn "@X0BChat Echo enabled."
Newline
Goto LABEL004
Case "NOECHO"
PrintLn "@X0BChat Echo disabled. Use the ECHO command to re-enable it."
Newline
Goto LABEL004
Case "MONITOR"
PrintLn "@X0BMonitor of public channels enabled."
Newline
Goto LABEL004
Case "PUBLIC"
PrintLn "@X0BThis channel is now public."
Newline
Goto LABEL004
Case "IGNORE"
Goto LABEL006
Case "H"
If (Exist(PPEPath() + "HELP2.ANS")) DispFile PPEPath() + "HELP2.ANS", 4 + 2 + 1
Goto LABEL004
Case "?"
If (Exist(PPEPath() + "HELP2.ANS")) DispFile PPEPath() + "HELP2.ANS", 4 + 2 + 1
Goto LABEL004
Case "SEND"
Goto LABEL007
End Select
Goto LABEL004
End
:LABEL006
STRING011 = ""
Newline
Print "@X0AEnter node (#) to ignore, (C)ancel or (W)ho? "
InputStr "_", STRING011, 7, 50, Mask_Ascii(), 4096 + 64
Tokenize STRING011
Select Case (Upper(STRING011))
Case "C"
Goto LABEL004
Case "W"
PrintLn ""
PrintLn "@X0F @X08(@X07#@X08) St@X07at@X0Fus @X08U@X07se@X0Fr"
PrintLn "@X0F @X04─@X0C─@X04─ ────@X0C────@X07──@X0F─@X07──@X0C────@X04──── ─────@X0C─────@X07───@X0F───@X07───@X0C─────@X04─────"
PrintLn "@X04 @X0F1 Available for CHAT @USER@ (@CITY@)"
PrintLn "@X0F 2 No Caller this Node"
PrintLn "@X0F 3 Transferring a File @LASTCALLERSYSTEM@"
PrintLn "@X0F @X04─@X0C─@X04─ ────@X0C────@X07──@X0F─@X07──@X0C────@X04──── ─────@X0C─────@X07───@X0F───@X07───@X0C─────@X04─────"
Goto LABEL006
Case "1"
PrintLn "@X0BSorry, @FIRST@, Node requested is not available for CHAT."
Goto LABEL006
Case "2"
PrintLn "@X0BMessages received from Node 2 will now be ignored."
Goto LABEL006
Case "3"
PrintLn "@X0BSorry, @FIRST@, Node requested is not available for CHAT."
Goto LABEL006
End Select
Goto LABEL004
End
:LABEL007
STRING012 = ""
Newline
Print "@X0ASend send message to Node (#), (C)ancel or (S)how users? "
InputStr "_", STRING012, 7, 50, Mask_Ascii(), 4096 + 64
Tokenize STRING012
Select Case (Upper(STRING012))
Case "C"
Goto LABEL004
Case "S"
Newline
PrintLn "Channel 1: Open Discussion"
PrintLn "=========================="
PrintLn "(1) @FIRST@ * "
Goto LABEL007
Case "1"
PrintLn "@X0BSorry, @FIRST@, Node requested is not available for CHAT."
Goto LABEL007
Case "2"
PrintLn "@X0BSorry, @FIRST@, SYSOP cannot receive a message."
Goto LABEL007
Case "3"
PrintLn "@X0BSorry, @FIRST@, Node requested is not available for CHAT."
Goto LABEL007
End Select
Goto LABEL004
End
:LABEL008
PrintLn ""
PrintLn "@X0F @X08(@X07#@X08) St@X07at@X0Fus @X08U@X07se@X0Fr"
PrintLn "@X0F @X04─@X0C─@X04─ ────@X0C────@X07──@X0F─@X07──@X0C────@X04──── ─────@X0C─────@X07───@X0F───@X07───@X0C─────@X04─────"
PrintLn "@X04 @X0F1 Available for CHAT @USER@ (@CITY@)"
PrintLn "@X0F 2 Available for CHAT SYSOP (@BOARDNAME@)"
PrintLn "@X0F 3 Transferring a File @LASTCALLERSYSTEM@"
PrintLn "@X0F @X04─@X0C─@X04─ ────@X0C────@X07──@X0F─@X07──@X0C────@X04──── ─────@X0C─────@X07───@X0F───@X07───@X0C─────@X04─────"
:LABEL009
STRING010 = ""
Newline
Print "@X0AEnter the number of the node to CALL into chat? "
InputStr "_", STRING010, 7, 50, Mask_Ascii(), 4096 + 64
Tokenize STRING010
Select Case (Upper(STRING010))
Case "1"
PrintLn "@X0FSorry, @FIRST@, Node requested is not available for CHAT."
Goto LABEL009
Case "2"
PrintLn "@X03Requesting Node 2 for chat. . . . "
Goto LABEL010
Case "3"
PrintLn "@X0FSorry, @FIRST@, Node requested is not available for CHAT."
Goto LABEL009
Case "Q"
Newline
PrintLn "@X0FNode CHAT ended at @SYSTIME@"
End
End Select
Goto LABEL004
End
:LABEL010
TIME001 = Time()
TIME002 = ReadLine(PCBDat(), 189)
TIME003 = ReadLine(PCBDat(), 190)
INTEGER004 = 12
STRING003 = Chr(7)
STRING004 = Chr(13)
STRING005 = Chr(27) + "["
STRING006 = STRING005 + "0;0H"
STRING007 = STRING005 + "K"
If (((TIME001 >= TIME002) && (TIME001 <= TIME003)) || (CurSec() >= SysopSec())) Then
If ((CurSec() >= SysopSec()) || !PageStat()) Then
DispText 579, 128
DispText 97, 128
STRING001 = Space(15) + "Press (Space) to answer chat request, "
STRING001 = STRING001 + "(Esc) when done."
Gosub LABEL012
For INTEGER003 = 1 To INTEGER004
Print "@X0F■@X05∙@X0D·"
MPrint STRING003
Gosub LABEL013
If (KInkey() == " ") Then
STRING001 = ""
Gosub LABEL012
Chat
PageOff
End
Endif
If (Abort()) INTEGER003 = INTEGER004 + 1
Next
STRING001 = ""
Gosub LABEL012
If (Abort()) Then
ResetDisp
Newline
End
Goto LABEL011
Endif
Newline
Endif
Endif
:LABEL011
PageOn
DispText 128, 128 + 64
STRING002 = NoChar()
PromptStr 571, STRING002, 1, "", 16384 + 64 + 256 + 2 + 8
If (STRING002 == YesChar()) KbdStuff "C" + STRING004 + "Y" + STRING004
End
:LABEL012
INTEGER001 = GetX()
INTEGER002 = GetY()
SPrint STRING006, STRING007
SPrint STRING001
SPrint STRING005 + String(INTEGER002) + ";" + String(INTEGER001) + "H"
Return
:LABEL013
Sound 15
Delay 2
Sound 30
Delay 2
Sound 45
Delay 2
Sound 60
Delay 2
Sound 75
Delay 2
Sound 90
Delay 2
Sound 115
Delay 2
Sound 130
Delay 2
Sound 145
Delay 2
Sound 160
Delay 2
Sound 175
Delay 2
Sound 190
Delay 2
Sound 0
Delay 10
Return
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 13 End
; 124 Goto
; 27 Let
; 7 Print
; 51 PrintLn
; 54 If
; 5 DispFile
; 1 ResetDisp
; 2 Hangup
; 5 InputStr
; 4 Gosub
; 2 Return
; 1 PromptStr
; 13 Delay
; 31 Newline
; 5 Tokenize
; 3 DispText
; 1 KbdStuff
; 13 Sound
; 1 Chat
; 3 SPrint
; 1 MPrint
; 1 PageOn
; 1 PageOff
;
;
; ■ Functions used :
;
; 45 +
; 44 ==
; 2 <
; 2 <=
; 5 >=
; 48 !
; 4 &&
; 3 ||
; 41 Upper()
; 1 Space()
; 3 Chr()
; 2 Abort()
; 3 Time()
; 1 NoChar()
; 1 YesChar()
; 1 Inkey()
; 2 String()
; 5 Mask_Ascii()
; 2 PCBDat()
; 10 PPEPath()
; 2 ReadLine()
; 2 SysopSec()
; 2 CurSec()
; 5 Exist()
; 1 GetX()
; 1 GetY()
; 1 KInkey()
; 1 PageStat()
;
;------------------------------------------------------------------------------
;
; Analysis flags : BMds
;
; 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()
;
; 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
;
; 1 For/Next
; 1 While/EndWhile
; 5 If/Then or If/Then/Else
; 5 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------