home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
PCBOARD
/
WONDIR15.ZIP
/
WONDIR1.PPE
(
.txt
)
< prev
Wrap
PCBoard Programming Language Executable
|
1994-02-22
|
10KB
|
399 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
;------------------------------------------------------------------------------
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
Integer INTEGER012
Integer INTEGER013
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 TSTRING013(1)
String TSTRING014(20)
String STRING015
;------------------------------------------------------------------------------
If (GrafMode() == "R") BOOLEAN001 = 1
STRING001 = TokenStr()
If ((STRING001 == Chr(70) + Chr(73) + Chr(78) + Chr(83) + Chr(84) + Chr(69) + Chr(82)) || (STRING001 == Chr(82) + Chr(65) + Chr(78) + Chr(68) + Chr(89))) Then
If (STRING001 == Chr(82) + Chr(65) + Chr(78) + Chr(68) + Chr(89)) BOOLEAN002 = 1
If (STRING001 == Chr(70) + Chr(73) + Chr(78) + Chr(83) + Chr(84) + Chr(69) + Chr(82)) BOOLEAN002 = 0
Else
If (BOOLEAN001) MPrintLn "!|*"
Cls
AnsiPos 15, 10
Color 14
SPrintLn "This ppe (WONDIR1.PPE) requires WONDIR.PPE v.1.5.0"
Newline
AnsiPos 11, GetY()
Color 3
SPrintLn "You may download the shareware version of WONDIR by calling"
AnsiPos 22, GetY()
SPrintLn "Randy's Home Project @ (904) 223-4060"
Newlines 3
Color 7
SPrintLn "this message does NOT display to the caller"
SPrintLn "their blank screen has the following prompt on line 12."
Newline
Wait
DefColor
End
Endif
STRING002 = "U" + Chr(78) + "R" + Chr(69) + "G" + Chr(73) + "S" + Chr(84) + "E" + Chr(82) + "E" + Chr(68)
STRING002 = STRING002 + Space(10) + Chr(87) + "O" + Chr(78) + "D" + Chr(73) + "R " + Chr(118) + ".1." + Chr(53) + Space(10) + STRING002
If (BOOLEAN002) STRING003 = ReadLine(PCBDat(), 94)
If (BOOLEAN002 && Exist(PPEPath() + "wondir.cfg")) Then
If (Trim(ReadLine(PPEPath() + "wondir.cfg", 1), " ") > "") STRING003 = Trim(Left(ReadLine(PPEPath() + "wondir.cfg", 1), 65), " ")
STRING004 = Left(ReadLine(PPEPath() + "wondir.cfg", 2), 4)
STRING005 = Left(ReadLine(PPEPath() + "wondir.cfg", 3), 4)
STRING006 = Left(ReadLine(PPEPath() + "wondir.cfg", 4), 4)
STRING007 = Left(ReadLine(PPEPath() + "wondir.cfg", 5), 4)
STRING008 = Left(ReadLine(PPEPath() + "wondir.cfg", 6), 4)
Else
STRING004 = "@X2E"
STRING005 = "@X20"
STRING006 = "@X2F"
STRING007 = "@X2E"
STRING008 = "@X20"
Endif
INTEGER001 = (80 - Len(STRING003)) / 2
STRING009 = "@POS:" + String(INTEGER001) + "@"
STRING010 = ReadLine(ReadLine(PCBDat(), 31), CurConf() * 33 + 1)
STRING012 = ReadLine(ReadLine(PCBDat(), 31), CurConf() * 33 + 31)
INTEGER002 = FileInf(STRING012, 4) / 96 + 1
BOOLEAN003 = (INTEGER002 > 20)
If (BOOLEAN001) Then
MPrintLn "!|1K|*|1B000002007C030F000F080200000F07000000|1U0200HN4F0000<><>|w000K270O10"
MPrintLn "!|=00000001|c08|L0E0XHB0X|c0F|L0E0YHB0Y|Y01000100|c08|@0P0AAvailable File Areas|c0E|@0O09Available File Areas"
MPrintLn "!|1B0000020PWG01000F0F080200000707000000|1U025THN670000<><>"
MPrintLn "!|Y08000300|c02|@0O6DFile Commands|Y00000100|c0E|@1N7K", STRING010, "|@2H84Conference"
MPrintLn "!|1B0000020PVK030F000F080200000F07000000|1U6Y6IHJ950000<><>"
If (!BOOLEAN002) MPrintLn "!|c00|Y00000100|@2I5X", STRING002, "|c05|@2H5W", STRING002
If (BOOLEAN003) Gosub LABEL009
Else
If (BOOLEAN002) Then
PrintLn "@CLS@@POFF@", STRING005, "▓▓▒▒░░", STRING009, STRING004, STRING003, STRING005, "@POS:75@░░▒▒▓▓@X07"
Else
PrintLn "@CLS@@POFF@", STRING005, "▓▓▒▒░░@POS:13@@X25", STRING002, STRING005, "@POS:75@░░▒▒▓▓@X07"
Endif
AnsiPos 1, 3
Print STRING006, "┌──────────────────────────────────────────────────────────────────────────────", STRING005, "┐@X07"
Print STRING006, "│ ", STRING005, "┌──────────────────────────────────────────────────────────────────────────", STRING006, "┐ ", STRING005, "│@X07"
Print STRING006, "│ ", STRING005, "│", STRING007, " Available File Areas - @CONFNAME@ Conference@POS:78@", STRING006, "│ ", STRING005, "│@X07"
Print STRING006, "│ ", STRING005, "└", STRING006, "──────────────────────────────────────────────────────────────────────────┘ ", STRING005, "│@X07"
Print STRING006, "│ ", STRING005, "┌──────────────────────────────────────────────────────────────────────────", STRING006, "┐ ", STRING005, "│@X07"
INTEGER003 = 0
While ((INTEGER003 < INTEGER002) && (INTEGER003 < 10)) Do
Print STRING006, "│ ", STRING005, "│", STRING006, "@POS:78@│ ", STRING005, "│@X07"
Inc INTEGER003
EndWhile
Print STRING006, "│ ", STRING005, "└", STRING006, "──────────────────────────────────────────────────────────────────────────┘ ", STRING005, "│"
Print STRING006, "└", STRING005, "──────────────────────────────────────────────────────────────────────────────┘@X07"
INTEGER009 = GetY()
Endif
Redim TSTRING013, INTEGER002
FOpen 1, STRING012, 0, 0
FDefIn 1
For INTEGER003 = 1 To INTEGER002 - 1
FSeek 1, (INTEGER003 - 1) * 96 + 60, 0
FDRead TSTRING013(INTEGER003), 29
Next
FClose 1
TSTRING013(INTEGER003) = "Recent Uploads" + Space(15)
If (BOOLEAN003) Goto LABEL001
Redim TSTRING014, INTEGER002
For INTEGER003 = 1 To INTEGER002
TSTRING014(INTEGER003) = TSTRING013(INTEGER003)
Next
Goto LABEL002
:LABEL001
For INTEGER003 = 1 To 20
TSTRING014(INTEGER003) = TSTRING013(INTEGER003)
Next
:LABEL002
INTEGER006 = 1
INTEGER005 = 1
While (INTEGER005 <= INTEGER002) Do
If (BOOLEAN001) Then
Newline
MPrintLn "!|1K|S0102|B0E12H943"
Endif
INTEGER004 = 1
While (TSTRING014(INTEGER004) > "") Do
If (INTEGER004 == 1) Gosub LABEL004
If (INTEGER005 == 10) Gosub LABEL006
If (INTEGER004 == 11) Gosub LABEL005
If ((INTEGER005 == 30) && !BOOLEAN001) Gosub LABEL007
If (INTEGER005 < 11) TSTRING014(INTEGER004) = TSTRING014(INTEGER004) + " "
STRING015 = String(INTEGER005) + " - "
If (TSTRING014(INTEGER004) == Space(29)) STRING015 = Space(5)
If (BOOLEAN001) Then
MPrintLn "!|c0F|W00|=00000001|Y00000100|@", MegaNum(INTEGER010), MegaNum(INTEGER011), STRING015, TSTRING014(INTEGER004)
If (BOOLEAN002) MPrintLn "!|1M", MegaNum(INTEGER012) , MegaNum(INTEGER013) , MegaNum(INTEGER011 - 2) , MegaNum(INTEGER013 + (Len(RTrim(TSTRING014(INTEGER004), " ")) + Len(String(INTEGER005)) + 4) * 8) , MegaNum(INTEGER011 + 8) , "1000000", INTEGER005, "^M"
INTEGER011 = INTEGER011 + 10
INTEGER012 = INTEGER012 + 1
Else
AnsiPos INTEGER007, INTEGER008
PrintLn STRING008, STRING015, TSTRING014(INTEGER004)
INTEGER008 = INTEGER008 + 1
Endif
INTEGER005 = INTEGER005 + 1
Inc INTEGER004
EndWhile
AnsiPos 1, INTEGER009
If (BOOLEAN001) Then
MPrintLn "!|10$SMF$|#|#|#"
Newline
Endif
DefColor
If (!BOOLEAN003) Gosub LABEL010
If (INTEGER005 == 21) Then
If (BOOLEAN001) Gosub LABEL009
InputStr "(Enter) for next page or (S)top", STRING011, 14, 1, Mask_Alpha(), 32
If ((STRING011 == "S") || (STRING011 == "s")) Gosub LABEL010
INTEGER006 = INTEGER006 + 20
Gosub LABEL008
ElseIf ((INTEGER005 > 21) && (INTEGER002 - INTEGER005 - 1 > 0)) Then
If (BOOLEAN001) Gosub LABEL009
InputStr "(Enter) for next page, (P)revious or (S)top", STRING011, 14, 1, Mask_Alpha(), 32
If ((STRING011 == "s") || (STRING011 == "S")) Gosub LABEL010
If ((STRING011 == "p") || (STRING011 == "P")) Then
INTEGER005 = INTEGER006 - 20
INTEGER006 = INTEGER005
Gosub LABEL008
Goto LABEL003
Endif
INTEGER006 = INTEGER005
Gosub LABEL008
Endif
:LABEL003
If (INTEGER005 > INTEGER002) Then
If (BOOLEAN001) Gosub LABEL009
InputStr "(P)revious page or (Enter) = Stop", STRING011, 14, 1, Mask_Alpha(), 32
If ((STRING011 == "p") || (STRING011 == "P")) Then
INTEGER005 = INTEGER006 - 20
INTEGER006 = INTEGER005
Gosub LABEL008
Endif
Endif
EndWhile
Gosub LABEL010
:LABEL004
INTEGER010 = 25
INTEGER011 = 44
INTEGER012 = 1
INTEGER013 = 20
INTEGER007 = 5
INTEGER008 = 8
Return
:LABEL005
INTEGER010 = 345
INTEGER013 = INTEGER010 - 5
INTEGER011 = 44
INTEGER007 = 40
INTEGER008 = 8
Return
:LABEL006
INTEGER010 = 17
INTEGER013 = INTEGER010 - 5
INTEGER007 = 4
Return
:LABEL007
AnsiPos 4, GetY()
Print " "
Return
:LABEL008
INTEGER004 = 1
For INTEGER003 = INTEGER005 To INTEGER005 + 20
TSTRING014(INTEGER004) = TSTRING013(INTEGER003)
If (TSTRING014(INTEGER004) == "") TSTRING014(INTEGER004) = Space(29)
INTEGER004 = INTEGER004 + 1
Next
Return
:LABEL009
MPrint "!|Y00000100|1B00000201F601000F0F080700020407000000"
If ((INTEGER005 > 20) && (INTEGER005 < INTEGER002)) Then
MPrint "|1U7B6QAJ720000<>Next Page<>^M"
Else
MPrint "|1U7B6QAJ720000<><>"
Endif
If (INTEGER005 > 21) Then
MPrint "|1U7B77AJ7J0000<>Prev. Page<>P^M"
Else
MPrint "|1U7B77AJ7J0000<><>"
Endif
MPrint "|1U7B7OAJ800000<><>"
MPrint "|1U7B85AJ8H0000<><>"
MPrint "|1U7B8MAJ8Y0000<><>"
MPrint "|1UAN7ODV800000<><>"
MPrint "|1UAN85DV8H0000<><>"
MPrint "|1UAN8MDV8Y0000<><>"
If (INTEGER005 > 20) Then
MPrint "|1UDZ6QH7720000<>Stop<>S^M"
Else
MPrint "|1UDZ6QH7720000<><>"
Endif
MPrint "|1UDZ77H77J0000<><>"
MPrint "|1UDZ7OH7800000<><>"
MPrint "|1UDZ85H78H0000<><>"
MPrint "|1UDZ8MH78Y0000<><>"
MPrintLn "|#|#|#"
Return
:LABEL010
If (BOOLEAN001 && !Exist(PPEPath() + "rpfflag.ppe")) Then
Newline
MPrint "!|10$MKILL$|10$RMF$|10$ETW$"
MPrint "|Y00000100|1B00000201F601000F0F080700020407000000"
MPrint "|1U7B6QAJ720000<><>$blip$"
MPrint "|1U7B77AJ7J0000<><>$blip$"
MPrint "|1U7B7OAJ800000<>Flag<>FLAG^M"
MPrint "|1U7B85AJ8H0000<>View<>$RESET$V^M"
MPrint "|1U7B8MAJ8Y0000<><>$blip$"
MPrint "|S0102|BAM6NDU7J|c00|@B676Search by:|c0F|@B575Search by:"
MPrint "|1UAN7ODV800000<>Filename<>L^M"
MPrint "|1UAN85DV8H0000<>Text<>Z^M"
MPrint "|1UAN8MDV8Y0000<>Age/Date<>N^M"
MPrint "|1UDZ6QH7720000<>Relist<>R^M"
MPrint "|1UDZ77H77J0000<><>$blip$"
MPrint "|1B00000201F601000F0F080700060407000000"
MPrint "|1UDZ7OH7800000<>Quit to Main<>$RESET$^M^M"
MPrint "|1B00000201F601000F0F080700020407000000"
MPrint "|1UDZ85H78H0000<>Enter<>^M"
MPrint "|1UDZ8MH78Y0000<>Help\!<>$RESET$H^M"
MPrintLn "|#|#|#"
Endif
End
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 2 End
; 1 Cls
; 1 Wait
; 3 Color
; 42 Goto
; 71 Let
; 9 Print
; 3 PrintLn
; 46 If
; 1 FOpen
; 1 FClose
; 2 DefColor
; 3 InputStr
; 16 Gosub
; 6 Return
; 2 Inc
; 5 Newline
; 1 Newlines
; 7 AnsiPos
; 5 SPrintLn
; 35 MPrint
; 13 MPrintLn
; 1 FSeek
; 1 FDefIn
; 1 FDRead
; 2 Redim
;
;
; ■ Functions used :
;
; 4 *
; 2 /
; 77 +
; 11 -
; 20 ==
; 8 <
; 5 <=
; 9 >
; 8 >=
; 28 !
; 14 &&
; 9 ||
; 3 Len(
; 6 Left()
; 6 Space()
; 35 Chr()
; 1 RTrim()
; 2 Trim()
; 3 String()
; 3 Mask_Alpha()
; 2 CurConf()
; 3 PCBDat()
; 9 PPEPath()
; 12 ReadLine()
; 2 Exist()
; 1 TokenStr()
; 4 GetY()
; 1 GrafMode()
; 1 FileInf()
; 7 MegaNum()
;
;------------------------------------------------------------------------------
;
; Analysis flags : Md
;
; 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()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 4 For/Next
; 3 While/EndWhile
; 16 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------