home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 12
/
CD_ASCQ_12_0294.iso
/
vrac
/
nufilz20.zip
/
N.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-01-26
|
13KB
|
578 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
;------------------------------------------------------------------------------
Date DATE001
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
String STRING001
String STRING002
String STRING003
String STRING004
String TSTRING005(100)
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
String STRING020
String STRING021
String STRING022
String TSTRING023(20)
String STRING024
String STRING025
String STRING026
String STRING027
;------------------------------------------------------------------------------
Cls
GetToken STRING022
If (STRING022 == "") Goto LABEL002
If (Upper(STRING022) == "H") Then
DispFile PPEPath() + "newfiles.hlp", ""
Wait
Else
Select Case (STRING022)
Case "1"
GetToken STRING022
If (STRING022 == "") Then
STRING022 = Strip(U_LDir(), "-")
KbdStuff "N"
End
ElseIf (STRING022 <> "") Then
STRING010 = STRING022
GetToken STRING022
If (STRING022 == "") Then
KbdStuff "N " + STRING010
Goto LABEL001
Endif
If (STRING022 <> "") Then
INTEGER003 = 0
While (STRING022 <> "") Do
INTEGER003 = INTEGER003 + 1
TSTRING023(INTEGER003) = STRING022
STRING024 = STRING024 + " " + STRING022
GetToken STRING022
EndWhile
KbdStuff "N " + STRING010 + " " + STRING024
Endif
Endif
:LABEL001
GetToken STRING022
If (STRING022 == "") Then
PrintLn
STRING025 = " @X0EPlease input Directories to Scan@X07"
Else
STRING025 = " @X06D@X0Eirectories: " + STRING024 + "@X07"
Endif
PrintLn " @X0BYou are scanning from: @X0F", STRING010 + "@X07" + STRING025
PrintLn
If (STRING022 == "") Then
End
ElseIf (Upper(STRING022) == "A") Then
KbdStuff "A" + Chr(34)
ElseIf (STRING022 <> "") Then
PrintLn
PrintLn " you got here"
PrintLn " @X0BYou are scanning from:@X0F ", STRING010, "@X0E Please select directoires to scan@X07"
PrintLn
KbdStuff STRING022
Endif
End
Case "2"
GetToken STRING022
If (STRING022 == "") Then
STRING010 = Strip(U_LDir(), "-")
ElseIf (Len(STRING022) >= 7) Then
STRING010 = Strip(STRING022, "-")
Else
STRING010 = STRING022
Endif
GetToken STRING022
If (STRING022 == "") Then
STRING022 = "A"
ElseIf (STRING022 <> "") Then
While (STRING022 <> "") Do
STRING024 = STRING024 + " " + STRING022
GetToken STRING022
EndWhile
PrintLn STRING024
STRING004 = STRING024
Endif
Gosub LABEL023
PrintLn
PrintLn " @X0FYou are @X0Bscanning @X0Ffrom@X0C " + STRING010 + "@X0F with the following @X0Adirectories@X07"
PrintLn
Goto LABEL005
End
Case
Gosub LABEL023
Gosub LABEL024
STRING010 = Strip(STRING022, "-")
GetToken STRING022
PrintLn " @X0FType @X0DN @X0Fat main prompt for @X0Amenu, @X0FN H for @X0Ehelp@X07"
PrintLn
If (STRING022 == "") Then
PrintLn " @X0BScanning @X0Ffrom @X0E" + STRING010 + "@X07"
PrintLn
Else
While (STRING022 <> "") Do
STRING026 = STRING026 + " " + STRING022
GetToken STRING022
EndWhile
STRING022 = STRING026
PrintLn "@POS:16@@X0BScanning @X0Ffrom @X0E" + STRING010 + "@X0F Directory(s):@X0A " + STRING022 + "@X07"
Delay 50
Endif
STRING022 = "N " + STRING010 + " " + STRING022
KbdStuff STRING022
End
Case Else
Goto LABEL002
Endif
End Select
:LABEL002
STRING021 = ""
PrintLn
PrintLn " @X0FWould you like to @X0Escan @X0Ffor all the @X0Cnew files @X0Fusing the "
PrintLn " @X0F standard PCBoard scan or would you like to @X0Escan @X0Ffor @X0Cnew@X07"
PrintLn " @X0C files @X0Fand @X0Ddownload a list @X0Fof new file descriptions.@X07"
PrintLn
PrintLn " Enter N 1 for regular PCBoard scan followed by date and directories"
PrintLn " Enter N 2 for newfiles scan with listing of files and descriptions"
PrintLn " Typing N 1 or N 2 at the main prompt will skip this menu"
PrintLn
PrintLn " @X0F 1. @X0BRegular PCBoard New files scan@X07"
PrintLn " @X0F 2. @X0ANew file scan with descriptions@X07"
PrintLn
InputStr " @X0FChoose one of the above(C/R to abort, @X0EH@X0F)elp)@X07", STRING021, 14, 1, "12HhqQ", 4 + 2 + 8
Select Case (STRING021)
Case ""
End
Case "1"
Newlines 2
KbdStuff "N"
End
Case "2"
Goto LABEL003
Case "H"
DispFile PPEPath() + "newfiles.hlp", ""
Goto LABEL002
Case Else
End Select
:LABEL003
Gosub LABEL023
PrintLn
Gosub LABEL022
:LABEL004
PrintLn
STRING007 = ReadLine(PCBDat(), 31)
STRING008 = ReadLine(STRING007, 16)
STRING009 = ReadLine(PCBDat(), 27)
PrintLn " @X0B ┌─────────────────────────────────────────────────────────────────────────┐@X07"
PrintLn "@X0B │ @X0FThe @X0Enew @X0Afile @X0Dnames @X0Fwill automatically be placed in a downloadable list @X0B│@X07"
PrintLn "@X0B │ @X0Fcalled @X0CNEWFILZ" + String(PcbNode()) + ".ZIP @X0Fand will be @X0Bflagged for download. │@X07"
PrintLn "@X0B └─────────────────────────────────────────────────────────────────────────┘@X07"
PrintLn
STRING015 = TempPath() + "flag.lst"
STRING016 = TempPath() + "newfiles.lst"
If (Exist(STRING015)) Delete STRING015
If (Exist(STRING016)) Delete STRING016
If (STRING010 == "") STRING010 = Strip(U_LDir(), "-")
If (STRING024 == "") STRING004 = "A"
InputStr "@X0A What date to scan from @X0E(C/R for last date on)@X07 ", STRING010, 14, 6, "0123456789-", 2 + 4 + 256
If (STRING010 == "") Then
STRING010 = U_LDate()
Else
STRING010 = STRING010
Endif
STRING012 = ""
PrintLn
PrintLn " @X0A ╔════════════════════════════════════════════════════════════════════╗@X07"
PrintLn "@X0A ║@X07 E@X0Fnter the range of file directories you want to scan for new files.@X0A║@X07"
PrintLn "@X0A ║@X07 Y@X0Fou may enter a @X0Esingle @X0Fdirectory, a @X0Erange @X0Fof directories or @X0A║@X07"
PrintLn "@X0A ║ @X0DU @X0Ffor the upload directory or @X0CA @X0Ffor all directories and for all @X0A║@X07"
PrintLn " @X0A║ @X0Fconferences or @X0EQ for Quit @X0A║@X07"
PrintLn " @X0A ╚════════════════════════════════════════════════════════════════════╝@X07"
PrintLn
PrintLn " @X0F@X0BIndividual directories @X0Fshould be separated by a @X0Aspace@X07"
PrintLn " @X0ERange of directories @X0Fshould be separated by a @X0Ddash @X0F( - )@X07"
PrintLn
:LABEL005
PrintLn " @X0FMain @X0BDirectories - (@X0C A@X0F)ll @X0EQ@X0F)uit @X0Erange @X0For @X0Asingle directory@X0B) @X07"
InputStr "@X0C Dir # @X07", STRING004, 12, 55, "0123456789UuAaQq- ", 2 + 8 + 4 + 64
STRING004 = Upper(STRING004)
Select Case (STRING004)
Case "A"
STRING020 = ReadLine(PCBDat(), 108)
STRING011 = STRING004
Goto LABEL006
Case ""
Goto LABEL021
Case "U"
STRING011 = "U"
Goto LABEL006
Case "Q"
Goto LABEL021
Case Else
STRING011 = STRING004
Goto LABEL006
Goto LABEL021
End Select
PrintLn
:LABEL006
If ((0 < 2) && (STRING004 <> "A")) Then
Newlines 2
STRING017 = "N"
PrintLn " T@X0Fhe @X07m@X0Fain @X07d@X0Firectories @X07s@X0Fcanned @X07i@X0Fs @X0E(@X0F", STRING004, STRING012, "@X0E)@X07"
PrintLn
ElseIf ((0 > 1) && (STRING004 == "A")) Then
STRING017 = "Y"
Endif
PrintLn " T@X0Fhe main @X0Afile directories @X07a@X0Fre @X07b@X0Feing @X07s@X0Fcanned @X07f@X0From @X0E(@X0F", STRING010, "@X0E)@X07"
PrintLn
PrintLn " @X0B┌──────────────────────────────────────────────────────────────────┐@X07"
PrintLn " @X0B│ @X0FNow you can scan individual @X0Econferences @X0B(@X0Fall of the directories@X0B) @X0B│@X07"
PrintLn " @X0B └──────────────────────────────────────────────────────────────────┘@X07"
PrintLn
PrintLn " W@X0Fhich @X0EConferences @X07w@X0Fould @X07y@X0Fou @X07l@X0Fike @X07t@X0Fo @X07s@X0Fcan - @X07o@X0Fther @X07t@X0Fhan @X07t@X0Fhe @X07m@X0Fain @X07b@X0Foard@X07"
InputStr "@X0E (@X0BC/R @X0Ffor main -@X0B Q@X0F)uit - @X0BA@X0F)ll - or individual numbers@X0E)@X07", STRING018, 11, 30, "0123456789QA ", 2 + 4 + 8 + 64 + 16
Select Case (STRING018)
Case ""
STRING018 = 0
Gosub LABEL007
Gosub LABEL008
Gosub LABEL011
Goto LABEL015
Case "Q"
Goto LABEL021
Case "A"
STRING011 = STRING018
Gosub LABEL007
Gosub LABEL008
Gosub LABEL009
Gosub LABEL011
Goto LABEL015
Case Else
Gosub LABEL007
Gosub LABEL008
Gosub LABEL010
Gosub LABEL011
Goto LABEL015
End Select
:LABEL007
STRING013 = "N"
PrintLn
InputStr " @X07 W@X0Fould @X07y@X0Fou @X07l@X0Fike @X07t@X0Fo @X0Aview @X0F@X07t@X0Fhe @X0Bscan process @X0F(@X0Eslower if viewed@X0F)(@X0EQ@X0F)@X0Euit@X07 ", STRING013, 11, 1, "YyNnQq", 2 + 4 + 8 + 64
If (STRING013 == "N") ShowOff
If (STRING013 == "Q") Goto LABEL021
STRING011 = STRING004
STRING015 = "newfilz" + String(PcbNode())
STRING016 = ".zip"
STRING014 = STRING008 + STRING015
OpenCap TempPath() + "newfile2.lst", INTEGER001
Return
:LABEL008
PrintLn
PrintLn " @X07M@X0Faking @X07N@X0Few @X07F@X0Files @X07L@X0Fist - @X07T@X0Fhis @X07m@X0Fay @X07t@X0Fake a @X07l@X0Fittle @X07t@X0Fime @X07@X07"
KbdStuff Chr(13)
Dir "N;" + STRING010 + ";" + STRING011 + ";NS"
Return
:LABEL009
ShowOn
INTEGER002 = 0
While (INTEGER002 < 2) Do
INTEGER002 = INTEGER002 + 1
Join INTEGER002
KbdStuff Chr(13)
Dir "N;" + STRING010 + ";A;NS"
EndWhile
Goto LABEL021
Return
:LABEL010
Tokenize STRING018
While (TokCount() > 0) Do
STRING018 = GetToken()
STRING019 = TokenStr()
Join STRING018
KbdStuff Chr(13)
Dir "N;" + STRING010 + ";A;NS"
Tokenize STRING019
EndWhile
Return
:LABEL011
CloseCap
PrintLn
PrintLn " @X0FCleaning up the scanned list - this takes a little time@X07"
PrintLn
FOpen 1, TempPath() + "newfile2.lst", 0, 0
FCreate 2, TempPath() + "newfiles.lst", 2, 0
INTEGER002 = 0
:LABEL012
If (Ferr(1)) Goto LABEL014
INTEGER002 = INTEGER002 + 1
FGet 1, STRING001
STRING002 = Left(STRING001, 79)
If (Left(STRING002, 70) == " ") Goto LABEL013
STRING001 = RTrim(STRING002, " ")
If (Left(STRING001, 6) == "L/Msg.") Goto LABEL013
If (Left(STRING001, 9) == "High Msg.") Goto LABEL013
If (Left(STRING001, 12) == "Active Msgs:") Goto LABEL013
If (Left(STRING001, 8) == "Scanning") Goto LABEL013
If (Right(STRING001, 6) == "Joined") Goto LABEL013
If (Right(STRING001, 8) == "missing!") Goto LABEL013
If (Right(STRING001, 5) == "DizIt") Goto LABEL013
STRING015 = LTrim(STRING001, " ")
If (Left(STRING015, 6) == "Making") Goto LABEL013
TSTRING005(INTEGER002) = STRING001
FPutLn 2, STRING002
:LABEL013
Goto LABEL012
:LABEL014
FClose 1
FClose 2
ShowOn
Return
:LABEL015
PrintLn
PrintLn " @X0EZipping @X0FFile list and moving to upload directory@X07"
PrintLn
STRING014 = STRING008 + "newfilz" + String(PcbNode())
PrintLn STRING014
ShowOff
Shell 1, INTEGER001, "PKZIP", " -ex " + STRING014 + " " + TempPath() + "NEWFILES.LST"
PrintLn
ShowOn
STRING004 = "N"
PrintLn " @X0F Would you like to @X0Aflag @X0Fthe @X0Bfile list @X0Fand @X0Aflag @X0Fthe files @X07"
InputStr " @X0Ffor @X0Edownload @X0F(up to 40 files) @X0Dautomatically@X07", STRING004, 14, 1, "YyNn", 2 + 4 + 8
Newlines 2
If (STRING004 == "Y") Goto LABEL017
PrintLn
PrintLn " @X0AYou can either download the list now or it will be @X0Eflagged @X0Afor later download@X07"
PrintLn
InputStr " @X07W@X0Fould @X07y@X0Fou @X07l@X0Fike @X07t@X0Fo @X07d@X0Fownload @X07t@X0Fhe @X07l@X0Fist @X07n@X0Fow @X07u@X0Fsing @X07Z@X0Fmodem@X07", STRING004, 14, 1, "YyNn", 2 + 4 + 8 + 256
If (STRING004 == "Y") Goto LABEL016
STRING015 = "newfilz" + String(PcbNode())
PrintLn
PrintLn " @X0CPlease @X0Bdont forget to @X0Fdownload@X0E " + STRING015 + ".zip@X0F before logging off.@X07"
PrintLn
Join 0
KbdStuff "f;flag " + STRING015 + ".ZIP" + Chr(13)
KbdStuff Chr(13)
Goto LABEL021
:LABEL016
Shell 1, STRING003, "dsz sz " + RTrim(ReadLine(PCBDat(), 52), ":") + " " + STRING008 + "newfiles.zip", ""
PrintLn
Goto LABEL021
STRING004 = ""
InputStr " @X0FWould you like to flag the new files for download now@X07", STRING004, 14, 1, "YyNn", 2 + 4 + 8 + 256
If (STRING004 == "") Goto LABEL021
If (STRING004 == "Y") Goto LABEL017
If (STRING004 == "N") Goto LABEL021
:LABEL017
Join 0
PrintLn
PrintLn " Currently @X0Bmaking @X0Fa list of files to @X0Cflag! @X0FPlease be patient@X07"
PrintLn
INTEGER004 = 1
If (Exist(TempPath() + "flag.lst")) Delete TempPath() + "flag.lst"
FOpen 1, TempPath() + "newfiles.lst", 0, 0
FOpen 2, TempPath() + "flag.lst", 2, 0
INTEGER002 = 0
INTEGER003 = 0
:LABEL018
If (Ferr(1)) Goto LABEL020
INTEGER002 = INTEGER002 + 1
INTEGER003 = INTEGER003 + 1
INTEGER004 = INTEGER004 + 1
FGet 1, STRING001
STRING002 = Left(STRING001, 13)
If (Left(STRING001, 13) == " ") Goto LABEL019
If (Left(STRING001, 8) == "Scanning") Goto LABEL019
TSTRING005(INTEGER002) = STRING002
STRING002 = Upper(STRING002)
STRING002 = Strip(STRING002, " ")
STRING002 = RTrim(STRING002, "P")
STRING002 = RTrim(STRING002, "I")
STRING002 = RTrim(STRING002, "Z")
STRING002 = RTrim(STRING002, ".")
STRING002 = STRING002 + " "
Print "."
FPut 2, STRING002
:LABEL019
Goto LABEL018
:LABEL020
ShowOn
INTEGER003 = 0
For INTEGER003 = 1 To INTEGER002
STRING006 = STRING006 + TSTRING005(INTEGER003)
Next
PrintLn
PrintLn " The @X0BFiles @X0Fwill now be @X0Cflagged @X0Ffor @X0Adownload@X07"
KbdStuff "flag"
KbdFile TempPath() + "flag.lst"
:LABEL021
If (Exist(TempPath() + "newfiles.lst")) Delete TempPath() + "newfiles.lst"
If (Exist(TempPath() + "newfile2.lst")) Delete TempPath() + "newfile2.lst"
If (Exist(TempPath() + "flag.lst")) Delete TempPath() + "flag.lst"
FClose 1
FClose 2
End
STRING027 = 40 - INTEGER003 / 2
Return
:LABEL022
DATE001 = "03-01-94"
If (Date() > DATE001) Then
Beep
Beep
PrintLn "@X0F PPE @X0Btrial period @X0Fhas @X0CEXPIRED@X0F - please tell @X0Esysop @X0Fto register it@X07"
End
Endif
PrintLn "@X0F This PPE is @X0EUNREGISTERED @X0F- please @X0Cregister @X0Fby " + String(DATE001) + " or it will @X0Dexpire@X07"
Beep
Delay 90
Return
:LABEL023
Newlines 1
PrintLn " ░▒▓█ @X0BNEWFILES@X0F.ppe v 2.0 █▓▒░"
PrintLn
PrintLn " ░▒▓█ @X07by DM Soft █▓▒░"
Return
:LABEL024
Goto LABEL004
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 9 End
; 1 Cls
; 1 Wait
; 112 Goto
; 78 Let
; 1 Print
; 86 PrintLn
; 67 If
; 2 DispFile
; 1 FCreate
; 3 FOpen
; 4 FClose
; 2 FGet
; 1 FPut
; 1 FPutLn
; 6 Delete
; 8 InputStr
; 16 Gosub
; 8 Return
; 2 Delay
; 4 Newlines
; 2 Tokenize
; 10 GetToken
; 2 Shell
; 3 Beep
; 13 KbdStuff
; 4 Join
; 3 Dir
; 1 KbdFile
; 1 OpenCap
; 1 CloseCap
; 4 ShowOn
; 2 ShowOff
;
;
; ■ Functions used :
;
; 1 /
; 105 +
; 1 -
; 45 ==
; 8 <>
; 3 <
; 1 <=
; 3 >
; 4 >=
; 40 !
; 4 &&
; 1 ||
; 2 Len(
; 4 Upper()
; 10 Left()
; 3 Right()
; 2 Ferr()
; 6 Chr()
; 1 LTrim()
; 6 RTrim()
; 1 Date()
; 1 U_LDate()
; 3 U_LDir()
; 6 Strip()
; 5 String()
; 4 PCBDat()
; 2 PPEPath()
; 4 PcbNode()
; 5 ReadLine()
; 1 GetToken()
; 6 Exist()
; 1 TokenStr()
; 17 TempPath()
; 1 TokCount()
;
;------------------------------------------------------------------------------
;
; Analysis flags : Sd
;
; S - Shell to DOS ■ 5
; This may be normal if the PPE need to execute an external command,
; but may be actually anything... nasty (formating HD, rebooting,...)
; or usefull (sorting, maintenance,...). Check!
; ■ Search for : SHELL
;
; 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
;
; 1 For/Next
; 5 While/EndWhile
; 18 If/Then or If/Then/Else
; 4 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------