home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
High Voltage Shareware
/
high1.zip
/
high1
/
DIR3
/
MAT35PWA.ZIP
/
NUV.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1993-10-05
|
9KB
|
543 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 TBOOLEAN003(100)
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer TINTEGER006(50)
Integer TINTEGER007(50)
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
Integer INTEGER011
Integer TINTEGER012(100)
Integer TINTEGER013(100)
String TSTRING001(100)
String TSTRING002(5)
String TSTRING003(50)
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String TSTRING009(100)
String STRING010
String TSTRING011(100)
String STRING012
String STRING013
String STRING014
String STRING015
String STRING016
String STRING017
String STRING018
String STRING019
String TSTRING020(10)
String TSTRING021(100)
String TSTRING022(100)
String TSTRING023(100)
;------------------------------------------------------------------------------
STRING008 = Chr(13)
INTEGER009 = CurSec()
Gosub LABEL002
Gosub LABEL004
:LABEL001
Gosub LABEL006
:LABEL002
If (Exist(PPEPath() + "NUV.CFG")) Goto LABEL003
Log "Your NUV.CFG file is non-existant.", 1
End
Goto LABEL005
:LABEL003
FOpen 1, PPEPath() + "NUV.CFG", 0, 0
FGet 1, STRING018
FGet 1, STRING019
FGet 1, STRING016
FGet 1, STRING017
INTEGER002 = 0
BOOLEAN001 = 0
While (BOOLEAN001 == 0) Do
Inc INTEGER002
FGet 1, TSTRING020(INTEGER002)
If ((TSTRING020(INTEGER002) == "") && (INTEGER002 == 1)) Then
Log "No Infoforms have been defined.", 1
FClose 1
End
Endif
If ((TSTRING020(INTEGER002) == "") || (INTEGER002 == 10)) BOOLEAN001 = 1
EndWhile
FClose 1
INTEGER010 = INTEGER002 - 1
Return
:LABEL004
If (INTEGER009 <> S2I(STRING016, 10)) Then
Return
ElseIf (!Exist(PPEPath() + "VALID.NXT") && !Exist(PPEPath() + "DELETE.NXT")) Then
PrintLn "Sorry, you have not yet been validated"
Wait
Hangup
ElseIf (Exist(PPEPath() + "VALID.NXT")) Then
FOpen 1, PPEPath() + "VALID.NXT", 0, 0
BOOLEAN002 = 0
While (BOOLEAN002 == 0) Do
FGet 1, STRING010
If (Lower(STRING010) == Lower(U_Name())) Then
FClose 1
BOOLEAN001 = 0
INTEGER002 = 0
FOpen 1, PPEPath() + "VALID.NXT", 0, 0
While (BOOLEAN001 == 0) Do
Inc INTEGER002
FGet 1, TSTRING009(INTEGER002)
If (TSTRING009(INTEGER002) == "") BOOLEAN001 = 1
EndWhile
FClose 1
FCreate 1, PPEPath() + "VALID.NXT", 2, 0
For INTEGER003 = 1 To INTEGER002 - 1
If (Lower(TSTRING009(INTEGER003)) <> Lower(U_Name())) Then
FPutLn 1, TSTRING009(INTEGER003)
Endif
Next
FClose 1
PrintLn "You've been validated!"
PrintLn "Performing online validation."
GetUser
U_Sec = 50
PutUser
Wait
BOOLEAN002 = 1
End
Endif
If (STRING010 == "") BOOLEAN002 = 1
EndWhile
Else
If (Exist(PPEPath() + "DELETE.NXT")) Then
FOpen 1, PPEPath() + "DELETE.NXT", 0, 0
BOOLEAN002 = 0
While (BOOLEAN002 == 0) Do
FGet 1, STRING010
If (Lower(STRING010) == Lower(U_Name())) Then
FClose 1
BOOLEAN001 = 0
INTEGER002 = 0
FOpen 1, PPEPath() + "DELETE.NXT", 0, 0
While (BOOLEAN001 == 0) Do
Inc INTEGER002
FGet 1, TSTRING009(INTEGER002)
If (TSTRING009(INTEGER002) == "") BOOLEAN001 = 1
EndWhile
FClose 1
FCreate 1, PPEPath() + "DELETE.NXT", 2, 0
For INTEGER003 = 1 To INTEGER002 - 1
If (Lower(TSTRING009(INTEGER003)) <> Lower(U_Name())) Then
FPutLn 1, TSTRING009(INTEGER003)
Endif
Next
FClose 1
PrintLn "You've been deleted!"
PrintLn "Now deleting your account."
GetUser
U_Sec = 0
PutUser
Hangup
BOOLEAN002 = 1
Endif
If (STRING010 == "") BOOLEAN002 = 1
EndWhile
Else
Hangup
Endif
Endif
:LABEL005
PrintLn "You have not yet finished going through the NUV."
Hangup
:LABEL006
If (!Exist(PPEPath() + "\APPS\WHOWAITS.APP")) End
FOpen 1, PPEPath() + "\APPS\WHOWAITS.APP", 0, 0
BOOLEAN001 = 0
INTEGER002 = 0
While (BOOLEAN001 == 0) Do
Inc INTEGER002
FGet 1, TSTRING001(INTEGER002)
If (TSTRING001(INTEGER002) == "") Then
BOOLEAN001 = 1
Continue
Endif
Tokenize TSTRING001(S2I(INTEGER002, 10))
INTEGER004 = TokCount()
If (INTEGER004 > 1) Then
For INTEGER005 = 1 To INTEGER004
TSTRING002(INTEGER005) = GetToken()
Next
For INTEGER005 = 1 To INTEGER004
TSTRING011(INTEGER002) = TSTRING011(INTEGER002) + TSTRING002(INTEGER005) + "_"
Next
Else
TSTRING011(INTEGER002) = TSTRING001(S2I(INTEGER002, 10))
Endif
If (Exist(PPEPath() + "\APPS\" + TSTRING011(INTEGER002) + ".RES")) Goto LABEL007
FCreate 3, PPEPath() + "\APPS\" + TSTRING011(INTEGER002) + ".RES", 2, 0
TINTEGER012(INTEGER002) = 0
TINTEGER013(INTEGER002) = 0
FPutLn 3, I2S(TINTEGER012(INTEGER002), 10)
FPutLn 3, I2S(TINTEGER013(INTEGER002), 10)
FClose 3
TBOOLEAN003(INTEGER002) = 0
Continue
:LABEL007
FOpen 2, PPEPath() + "\APPS\" + TSTRING011(INTEGER002) + ".RES", 0, 0
FGet 2, TINTEGER012(INTEGER002)
FGet 2, TINTEGER013(INTEGER002)
BOOLEAN002 = 0
While (BOOLEAN002 == 0) Do
FGet 2, STRING013
If (STRING013 == "") Then
BOOLEAN002 = 1
Continue
Endif
If (Lower(STRING013) == Lower(U_Name())) Then
FGet 2, TSTRING021(INTEGER002)
TBOOLEAN003(INTEGER002) = 1
BOOLEAN002 = 1
Endif
EndWhile
FClose 2
EndWhile
FClose 1
If (INTEGER002 == 1) Then
PrintLn "No users are awaiting validation..."
End
Endif
INTEGER011 = INTEGER002 - 1
Cls
StartDisp 1
PrintLn "@X0D┌──────────────────────────── · · ·"
PrintLn "@X0D│ @X0BNew User Vote PPE @X09-Coded By: @X0F L@X07iqu@X08id F@X07les@X0Fh"
PrintLn "@X0D└──────── · ·"
PrintLn
For INTEGER003 = 1 To INTEGER011
Print "@X0D[@X0B" + I2S(INTEGER003, 10) + "@X0D] @X0F" + TSTRING001(INTEGER003)
If (TBOOLEAN003(INTEGER003) == 1) Then
Print " Yea Votes: " + I2S(TINTEGER012(INTEGER003), 10)
PrintLn " Nay Votes: " + I2S(TINTEGER013(INTEGER003), 10)
Continue
Endif
PrintLn " [Undecided]"
Next
PrintLn "@X0D[@X0BQ@X0D] @X0FTo quit."
STRING006 = ""
InputStr "Who?", STRING006, 12, 3, Mask_Ascii(), 4096
If (STRING006 == "") Goto LABEL001
If (Lower(STRING006) == "q") End
INTEGER008 = S2I(STRING006, 10)
If (TBOOLEAN003(INTEGER008) == 1) Then
PrintLn
InputYN "Change your vote", STRING012, 7
PrintLn
If (STRING012 == YesChar()) Then
TBOOLEAN003(INTEGER008) = 0
If (Lower(TSTRING021(INTEGER008)) == "yes") Then
TINTEGER012(INTEGER008) = TINTEGER012(INTEGER008) - 1
Goto LABEL008
Endif
TINTEGER013(INTEGER008) = TINTEGER013(INTEGER008) - 1
:LABEL008
Goto LABEL009
Goto LABEL009
Endif
Goto LABEL001
Endif
:LABEL009
Gosub LABEL017
Gosub LABEL010
Goto LABEL013
Goto LABEL001
:LABEL010
If (Exist(PPEPath() + "\APPS\" + TSTRING011(INTEGER008) + ".COM")) Goto LABEL011
Return
Goto LABEL012
:LABEL011
PrintLn
InputYN "Comments Exist, Read them", STRING012, 15
PrintLn
PrintLn
If (STRING012 == YesChar()) Then
FOpen 1, PPEPath() + "\APPS\" + TSTRING011(INTEGER008) + ".COM", 0, 0
BOOLEAN001 = 0
While (BOOLEAN001 == 0) Do
FGet 1, STRING013
If (STRING013 <> "") Then
PrintLn STRING013
Continue
Endif
BOOLEAN001 = 1
EndWhile
FClose 1
Endif
:LABEL012
Return
:LABEL013
PrintLn
InputStr "How Do You Vote(Y/N/A)", STRING014, 12, 1, Mask_Ascii(), 4096
PrintLn
Select Case (Lower(STRING014))
Case "y"
TINTEGER012(INTEGER008) = TINTEGER012(INTEGER008) + 1
Goto LABEL014
Case "n"
TINTEGER013(INTEGER008) = TINTEGER013(INTEGER008) + 1
Goto LABEL014
Case Else
Goto LABEL001
End Select
:LABEL014
STRING012 = ""
InputYN "Add A Comment", STRING012, 14
PrintLn
If (STRING012 == YesChar()) Then
InputStr ">_", STRING013, 12, 75, Mask_Ascii(), 4096
PrintLn
If (Exist(PPEPath() + "\APPS\" + TSTRING011(INTEGER008) + ".COM")) Goto LABEL015
FCreate 2, PPEPath() + "\APPS\" + TSTRING011(INTEGER008) + ".COM", 2, 0
FPutLn 2, "@X0E" + U_Name() + ": @X0F" + STRING013
FClose 2
Goto LABEL016
:LABEL015
FAppend 2, PPEPath() + "\APPS\" + TSTRING011(INTEGER008) + ".COM", 2, 0
FPutLn 2, "@X0E" + U_Name() + ": @X0F" + STRING013
FClose 2
Endif
:LABEL016
Goto LABEL020
:LABEL017
For INTEGER002 = 1 To INTEGER010
If (Exist(PPEPath() + "\APPS\" + TSTRING011(INTEGER008) + "." + I2S(INTEGER002, 10))) Then
If (CurSec() < TSTRING020(INTEGER002)) Then
Continue
Goto LABEL019
Endif
FOpen 1, PPEPath() + "\INFOFORM\INFOCFG." + I2S(INTEGER002, 10), 0, 0
FGet 1, STRING010
FGet 1, STRING004
For INTEGER003 = 1 To S2I(STRING004, 10)
FGet 1, TSTRING003(INTEGER003)
Next
FClose 1
For INTEGER003 = 1 To S2I(STRING004, 10)
Tokenize TSTRING003(INTEGER003)
TINTEGER006(INTEGER003) = S2I(GetToken(), 10)
TINTEGER007(INTEGER003) = S2I(GetToken(), 10)
Next
DispFile PPEPath() + "\INFOFORM\INFOFORM." + I2S(INTEGER002, 10), 1
FOpen 1, PPEPath() + "\APPS\" + TSTRING011(INTEGER008) + "." + I2S(INTEGER002, 10), 0, 0
For INTEGER003 = 1 To S2I(STRING004, 10)
FGet 1, STRING005
AnsiPos TINTEGER006(INTEGER003), TINTEGER007(INTEGER003)
Print STRING005
Next
FClose 1
AnsiPos 10, 23
Print "[ENTER] To Continue"
:LABEL018
STRING007 = Inkey()
If (!(STRING007 == STRING008)) Goto LABEL018
:LABEL019
Cls
Endif
Next
Return
:LABEL020
If (TINTEGER013(INTEGER008) >= S2I(STRING019, 10)) Then
FCreate 1, PPEPath() + "\APPS\WHOWAITS.APP", 2, 0
For INTEGER002 = 1 To INTEGER011
If (INTEGER002 <> INTEGER008) Then
FPutLn 1, TSTRING001(INTEGER002)
Endif
Next
FClose 1
STRING015 = "\APPS\" + TSTRING011(INTEGER008) + "."
Delete PPEPath() + STRING015 + "APP"
If (Exist(PPEPath() + STRING015 + "COM")) Delete PPEPath() + "\APPS\" + TSTRING011(INTEGER008) + ".COM"
If (Exist(PPEPath() + STRING015 + "RES")) Delete PPEPath() + "\APPS\" + TSTRING011(INTEGER008) + ".RES"
For INTEGER002 = 1 To INTEGER010
If (Exist(PPEPath() + STRING015 + I2S(INTEGER002, 10))) Then
Delete PPEPath() + STRING015 + I2S(INTEGER002, 10)
Endif
Next
If (Exist(PPEPath() + "DELETE.NXT")) Goto LABEL021
FCreate 3, PPEPath() + "DELETE.NXT", 2, 0
FPutLn 3, TSTRING001(INTEGER008)
FClose 3
Goto LABEL022
:LABEL021
FAppend 3, PPEPath() + "DELETE.NXT", 2, 0
FPutLn 3, TSTRING001(INTEGER008)
FClose 3
:LABEL022
Else
If (TINTEGER012(INTEGER008) >= S2I(STRING018, 10)) Then
FCreate 1, PPEPath() + "\APPS\WHOWAITS.APP", 2, 0
For INTEGER002 = 1 To INTEGER011
If (INTEGER002 <> INTEGER008) Then
FPutLn 1, TSTRING001(INTEGER002)
Endif
Next
FClose 1
STRING015 = "\APPS\" + TSTRING011(INTEGER008) + "."
Delete PPEPath() + STRING015 + "APP"
If (Exist(PPEPath() + STRING015 + "COM")) Delete PPEPath() + "\APPS\" + TSTRING011(INTEGER008) + ".COM"
If (Exist(PPEPath() + STRING015 + "RES")) Delete PPEPath() + "\APPS\" + TSTRING011(INTEGER008) + ".RES"
For INTEGER002 = 1 To INTEGER010
If (Exist(PPEPath() + STRING015 + I2S(INTEGER002, 10))) Then
Delete PPEPath() + STRING015 + I2S(INTEGER002, 10)
Endif
Next
If (Exist(PPEPath() + "VALID.NXT")) Goto LABEL023
FCreate 3, PPEPath() + "VALID.NXT", 2, 0
FPutLn 3, TSTRING001(INTEGER008)
FClose 3
Goto LABEL024
:LABEL023
FAppend 3, PPEPath() + "VALID.NXT", 2, 0
FPutLn 3, TSTRING001(INTEGER008)
FClose 3
:LABEL024
Else
FOpen 1, PPEPath() + "\APPS\" + TSTRING011(INTEGER008) + ".RES", 0, 0
FGet 1, STRING010
FGet 1, STRING010
BOOLEAN001 = 0
INTEGER002 = 0
While (BOOLEAN001 == 0) Do
Inc INTEGER002
FGet 1, TSTRING022(INTEGER002)
FGet 1, TSTRING023(INTEGER002)
If (Lower(TSTRING022(INTEGER002)) == Lower(U_Name())) INTEGER002 = INTEGER002 - 1
If (TSTRING022(INTEGER002) == "") BOOLEAN001 = 1
EndWhile
FClose 1
FCreate 1, PPEPath() + "\APPS\" + TSTRING011(INTEGER008) + ".RES", 2, 0
FPutLn 1, TINTEGER012(INTEGER008)
FPutLn 1, TINTEGER013(INTEGER008)
FPutLn 1, U_Name()
If (Lower(STRING014) == "y") FPutLn 1, "yes"
If (Lower(STRING014) == "n") FPutLn 1, "no"
For INTEGER003 = 1 To INTEGER002 - 1
FPutLn 1, TSTRING022(INTEGER003)
FPutLn 1, TSTRING023(INTEGER003)
Next
FClose 1
Endif
Endif
Goto LABEL006
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 6 End
; 2 Cls
; 2 Wait
; 117 Goto
; 82 Let
; 4 Print
; 24 PrintLn
; 77 If
; 1 DispFile
; 9 FCreate
; 11 FOpen
; 3 FAppend
; 24 FClose
; 23 FGet
; 19 FPutLn
; 1 StartDisp
; 4 Hangup
; 2 GetUser
; 2 PutUser
; 8 Delete
; 2 Log
; 3 InputStr
; 3 InputYN
; 5 Gosub
; 5 Return
; 5 Inc
; 2 Tokenize
; 2 AnsiPos
;
;
; ■ Functions used :
;
; 129 +
; 11 -
; 38 ==
; 6 <>
; 15 <
; 14 <=
; 1 >
; 30 >=
; 64 !
; 30 &&
; 15 ||
; 18 Lower()
; 1 Chr()
; 9 U_Name()
; 3 YesChar()
; 1 Inkey()
; 3 Mask_Ascii()
; 50 PPEPath()
; 2 CurSec()
; 3 GetToken()
; 18 Exist()
; 13 I2S()
; 14 S2I()
; 1 TokCount()
;
;------------------------------------------------------------------------------
;
; Analysis flags : WB
;
; W - Write user ■ 5
; Program writes a user record. Although this may be normal for a
; User Editor, it may also be a way to modify an account level.
; ■ Search for : PUTUSER
;
; 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
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 14 For/Next
; 9 While/EndWhile
; 29 If/Then or If/Then/Else
; 1 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------