home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
PCBOARD
/
LC_20.ZIP
/
LAST.PPE
(
.txt
)
< prev
Wrap
PCBoard Programming Language Executable
|
1994-02-26
|
8KB
|
408 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
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 TSTRING018(1000)
String STRING019
String STRING020
String STRING021
String STRING022
String STRING023
Time TIME001
;------------------------------------------------------------------------------
GetUser
STRING019 = "@X0Fv@X082.0"
If (!Exist(PPEPath() + "last.dat")) Gosub LABEL009
If (!Exist(PPEPath() + "last.hdr")) Gosub LABEL010
:LABEL001
If (Exist(PPEPath() + "last.cfg")) Then
FOpen 1, PPEPath() + "last.cfg", 0, 0
FGet 1, STRING008
FGet 1, STRING009
FGet 1, STRING010
FGet 1, STRING011
FGet 1, STRING012
FGet 1, STRING013
FGet 1, STRING014
FGet 1, STRING015
FGet 1, STRING016
FGet 1, STRING023
FClose 1
Else
PrintLn "@BEEP@@BEEP@Configuration file LAST.CFG not found, creating a new file!"
FCreate 1, PPEPath() + "last.cfg", 1, 3
FPutLn 1, "[Unregistered]"
FPutLn 1, "[Unregistered]"
FPutLn 1, "@X0A"
FPutLn 1, "@X0B"
FPutLn 1, "@X0E"
FPutLn 1, "@X0D"
FPutLn 1, "@X09"
INTEGER002 = SysopSec()
STRING007 = I2S(INTEGER002, 10)
FPutLn 1, STRING007
FPutLn 1, "10"
FPutLn 1, "YES"
FPutLn 1, ";---------------------------------------------------------------------"
FPutLn 1, ";BoardName Line 1"
FPutLn 1, ";SysopName Line 2"
FPutLn 1, ";User Name Color Line 3"
FPutLn 1, ";City/State Color Line 4"
FPutLn 1, ";'Login at' Color Line 5"
FPutLn 1, ";Node Color Line 6"
FPutLn 1, ";Connect Speed Color Line 7"
FPutLn 1, ";Lowest level to exclude Line 8"
FPutLn 1, ";Last Number of users to track Line 9"
FPutLn 1, ";Allow Skipping Bulletin Line 10"
FPutLn 1, ";---------------------------------------------------------------------"
FPutLn 1, ";Line 9 is the number of callers to report. If set to 0, it will report all"
FPutLn 1, ";callers for the day, if set to a number less than 21, it will report the"
FPutLn 1, ";most recent N callers. For example, if set to 20, it will report the LAST"
FPutLn 1, ";20 callers, from oldest to newest."
FPutLn 1, ";(This enhancement made by Maj)"
FClose 1
Goto LABEL001
Endif
If (Exist(PPEPath() + "last.lng")) Then
FOpen 3, PPEPath() + "last.lng", 0, 0
FGet 3, STRING020
FGet 3, STRING021
FGet 3, STRING022
FClose 3
STRING020 = RTrim(STRING020, " ")
STRING021 = RTrim(STRING021, " ")
STRING022 = RTrim(STRING022, " ")
Else
FCreate 4, PPEPath() + "last.lng", 1, 3
FPutLn 4, "@X0AWould you like to see the last @X0F10 @X0Acallers"
FPutLn 4, "@X0EShould we add your name to the list"
FPutLn 4, "@X0COops! @X0AForgot that it's disabled!"
FClose 4
PrintLn "@X0CNo Language (LAST.LNG) found! Using default prompts"
STRING020 = "@X0AWould you like to see the last @X0F10 @X0Acallers"
STRING021 = "@X0EShould we add your name to the list"
STRING022 = "@X0COops! @X0AForgot that it's disabled!"
Endif
STRING005 = YesChar()
Newline
STRING016 = Left(STRING016, 2)
Select Case (Left(STRING023, 1))
Case YesChar()
InputYN STRING020, STRING005, 0
If (STRING005 == NoChar()) Then
Goto LABEL011
Else
If (STRING016 <> "0") Goto LABEL012
Endif
Case NoChar()
Goto LABEL012
End Select
INTEGER001 = 1
FOpen 1, PPEPath() + "last.dat", 0, 0
:LABEL002
DispFile PPEPath() + "last.hdr", 0
PrintLn "@X0FL@X07as@X08t@X0FU@X07s@X08er By @X0FT@X07h@X08e @X0FT@X07hri@X08ll " + STRING019
Newline
:LABEL003
FGet 1, STRING001
If (STRING001 == "") Then
Goto LABEL011
Goto LABEL004
Endif
:LABEL004
PrintLn STRING001
Inc INTEGER001
If (INTEGER001 == 19) Then
Goto LABEL005
Else
Goto LABEL003
Endif
:LABEL005
INTEGER001 = 1
STRING005 = YesChar()
Newline
InputYN "@X0EWanna see more", STRING005, 0
If (STRING005 == NoChar()) Then
Goto LABEL011
Else
Goto LABEL002
Endif
:LABEL006
STRING005 = YesChar()
Newline
InputYN STRING021, STRING005, 0
If (STRING005 == NoChar()) Then
If (CurSec() >= STRING015) Then
Newline
PrintLn "@X0AOh! @X0EOk Mr. Sysop sir..."
End
Endif
Newline
PrintLn STRING022
Wait
Else
Goto LABEL007
Endif
:LABEL007
Newline
DispStr "@X09Adding your name to the log..."
Newline
STRING015 = Left(STRING015, 3)
If (U_Sec >= STRING015) Then
Goto LABEL008
Else
Newline
STRING001 = U_Name()
STRING001 = Left(STRING001, 15)
STRING001 = Mixed(STRING001)
STRING002 = UN_City()
STRING002 = Left(STRING002, 20)
STRING002 = Mixed(STRING002)
TIME001 = Time()
STRING003 = TimeAp(TIME001)
INTEGER006 = PcbNode()
STRING004 = String(INTEGER006)
STRING006 = Carrier()
STRING010 = Left(STRING010, 4)
STRING011 = Left(STRING011, 4)
STRING012 = Left(STRING012, 4)
STRING013 = Left(STRING013, 4)
STRING014 = Left(STRING014, 4)
If (STRING006 <= 9600) Then
STRING006 = STRING006 + STRING012 + " bps"
Else
STRING006 = STRING006 + STRING012 + " bps"
Endif
FAppend 1, PPEPath() + "last.dat", 1, 3
FPutLn 1, "@POS:02@" + STRING010, STRING001 + "@POS:19@ " + STRING011, STRING002 + "@POS:43@" + STRING012, STRING003 + "@POS:61@" + STRING013, STRING004 + "@POS:67@" + STRING014 + STRING006
FClose 1
Endif
End
:LABEL008
Newline
PrintLn "@X0CRemoving all traces of your existance..."
End
:LABEL009
FCreate 1, PPEPath() + "last.dat", 1, 3
FPutLn 1, "@X0FT@X07h@X08e @X0FT@X07hri@X08ll @X0Fw@X07a@X08s @X0Fh@X07er@X08e! 02/21/94"
FClose 1
End
Return
:LABEL010
FCreate 1, PPEPath() + "last.hdr", 1, 3
FPutLn 1, "@CLS@"
FPutLn 1, "@X08▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄"
FPutLn 1, "@X71 User Name @X74@POS:21@Calling From@X70 @POS:41@Time Logged On @X7A@POS:57@On Node@X75@POS:70@Baud Rate @X07"
FPutLn 1, "@X0F▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
FClose 1
Return
:LABEL011
FClose 1
INTEGER007 = Len(Trim(Left(STRING009, 18), " "))
STRING009 = Left(STRING009, INTEGER007)
INTEGER007 = Len(Trim(Left(STRING008, 18), " "))
STRING008 = Left(STRING008, INTEGER007)
If (STRING017) Then
DispFile PPEPath() + "last.mid", 0
DispFile PPEPath() + "last.bot", 0
Endif
PrintLn "@X0FL@X07as@X08t@X0FU@X07s@X08er By @X0FT@X07h@X08e @X0FT@X07hri@X08ll " + STRING019
PrintLn "@POFF@ @POS:16@@X0F┌──@X07─────@X08────── ── ─ · · ── ─ ─────@X07────@X0F──╖"
PrintLn "@X0FR@X07egis@X08tered To: @X0F│ @X0A" + STRING009 + " @X0ESysOp @X0Cof @X0F" + STRING008 + "@X0F@POS:57@║"
PrintLn " @POS:16@@X0F╘══@X07═════@X08══════ ══ ═ · · ══ ═ ═════@X07════@X0F══╝"
Goto LABEL006
End
:LABEL012
INTEGER003 = S2I(STRING016, 10)
DispFile PPEPath() + "last.hdr", 0
If (Exist(PPEPath() + "last.top")) Then
DispFile PPEPath() + "last.top", 0
Else
Print "@X01───────────────────────────────────────────────────────────────────────────────"
Newline
Endif
INTEGER004 = GetX()
INTEGER005 = GetY()
Print "@X04Gathering Stats..."
AnsiPos INTEGER004, INTEGER005 - 1
:LABEL013
INTEGER003 = INTEGER001
FOpen 1, PPEPath() + "last.dat", 0, 0
FCreate 2, PPEPath() + "last" + String(PcbNode()) + ".tmp", 1, 3
FGet 1, TSTRING018(INTEGER001)
For INTEGER001 = INTEGER001 + 1 To INTEGER003
FGet 1, TSTRING018(INTEGER001)
Next
If (TSTRING018(INTEGER003) <> "") Then
Goto LABEL013
Goto LABEL014
Endif
:LABEL014
While (TSTRING018(INTEGER001) == "") Do
INTEGER001 = INTEGER001 - 1
EndWhile
FClose 1
FPutLn 2, "@X03" + String(INTEGER001 - 9) + "@X04) " + TSTRING018(INTEGER001 - 9)
FPutLn 2, "@X03" + String(INTEGER001 - 8) + "@X04) " + TSTRING018(INTEGER001 - 8)
FPutLn 2, "@X03" + String(INTEGER001 - 7) + "@X04) " + TSTRING018(INTEGER001 - 7)
FPutLn 2, "@X03" + String(INTEGER001 - 6) + "@X04) " + TSTRING018(INTEGER001 - 6)
FPutLn 2, "@X03" + String(INTEGER001 - 5) + "@X04) " + TSTRING018(INTEGER001 - 5)
FPutLn 2, "@X03" + String(INTEGER001 - 4) + "@X04) " + TSTRING018(INTEGER001 - 4)
FPutLn 2, "@X03" + String(INTEGER001 - 3) + "@X04) " + TSTRING018(INTEGER001 - 3)
FPutLn 2, "@X03" + String(INTEGER001 - 2) + "@X04) " + TSTRING018(INTEGER001 - 2)
FPutLn 2, "@X03" + String(INTEGER001 - 1) + "@X04) " + TSTRING018(INTEGER001 - 1)
FPutLn 2, "@X03" + String(INTEGER001) + "@X04) " + TSTRING018(INTEGER001)
If (INTEGER001 == 0) Then
AnsiPos 1, 12
Print "@X0EHey! You are the first caller of the day!"
Delay 30
AnsiPos INTEGER004, INTEGER005 - 1
Endif
If (Exist(PPEPath() + "last.mid") && PPEPath() + "last.bot") Then
STRING017 = 1
Goto LABEL015
Else
FPutLn 2, "@X01───────────────────────────────────────────────────────────────────────────────"
FPutLn 2, "@X08Number of Users Tracked Today @X02" + String(INTEGER001)
FPutLn 2, "@X01───────────────────────────────────────────────────────────────────────────────"
STRING017 = 0
Endif
:LABEL015
FClose 2
Newline
ClrEol
DispFile PPEPath() + "last" + String(PcbNode()) + ".tmp", 0
Delete PPEPath() + "last" + String(PcbNode()) + ".tmp"
Goto LABEL011
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 5 End
; 1 ClrEol
; 1 Wait
; 49 Goto
; 47 Let
; 3 Print
; 11 PrintLn
; 22 If
; 6 DispFile
; 5 FCreate
; 4 FOpen
; 1 FAppend
; 10 FClose
; 16 FGet
; 49 FPutLn
; 1 GetUser
; 1 Delete
; 3 InputYN
; 2 Gosub
; 2 Return
; 1 Delay
; 1 Inc
; 12 Newline
; 1 DispStr
; 3 AnsiPos
;
;
; ■ Functions used :
;
; 83 +
; 21 -
; 9 ==
; 2 <>
; 1 <
; 2 <=
; 4 >=
; 21 !
; 3 &&
; 1 ||
; 2 Len(
; 15 Left()
; 3 RTrim()
; 2 Trim()
; 1 Time()
; 1 U_Name()
; 1 TimeAp()
; 4 NoChar()
; 4 YesChar()
; 15 String()
; 24 PPEPath()
; 4 PcbNode()
; 1 SysopSec()
; 1 UN_City()
; 1 CurSec()
; 6 Exist()
; 1 I2S()
; 1 S2I()
; 1 Carrier()
; 1 GetX()
; 1 GetY()
; 2 Mixed()
;
;------------------------------------------------------------------------------
;
; Analysis flags : s
;
; 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
; 15 If/Then or If/Then/Else
; 1 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------