home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Equalizer BBS
/
equalizer-bbs-collection_2004.zip
/
equalizer-bbs-collection
/
DEMOSCENE-STUFF
/
IMPHOB9.ZIP
/
IMPVDOOR.ZIP
/
IMP-VOTE.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1995-01-12
|
13KB
|
534 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 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Boolean BOOLEAN002
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER008
Integer INTEGER012
Integer INTEGER014
Integer INTEGER015
Integer INTEGER016
Integer INTEGER022
Integer INTEGER023
String TSTRING001(10,10)
String STRING002
String STRING003
String STRING006
String STRING008
String STRING010
String STRING011
BigStr BIGSTR001
BigStr BIGSTR002
BigStr BIGSTR003
BigStr BIGSTR004
Declare Function FUNCTION001(String STRING005, Integer INTEGER009) String
Declare Function FUNCTION002(String STRING009, Integer INTEGER013) String
Declare Function FUNCTION003() Boolean
Declare Procedure PROC001(Integer INTEGER004)
Declare Procedure PROC002(Integer INTEGER006, Integer INTEGER007, String STRING004)
Declare Procedure PROC003()
Declare Procedure PROC004(String STRING007, Integer INTEGER010, Integer INTEGER011)
Declare Procedure PROC005(Integer INTEGER017, Integer INTEGER018, Integer INTEGER019, Integer INTEGER020, Integer INTEGER021)
Declare Procedure PROC006()
;------------------------------------------------------------------------------
If (AnsiOn()) Goto LABEL001
PrintLn
PrintLn "Sorry, The IMPHOBIA VOTER requires you to use ANSi mode"
PrintLn "You can switch to ANSi color mode by typing 'M' from the main menu"
PrintLn
End
:LABEL001
For INTEGER002 = 0 To 8
For INTEGER003 = 0 To 10
TSTRING001(INTEGER002, INTEGER003) = Left("", 35)
Next
Next
For INTEGER002 = 9 To 10
For INTEGER003 = 0 To 5
TSTRING001(INTEGER002, INTEGER003) = Left("", 75)
Next
Next
TSTRING001(1, 1) = U_Alias
PROC003()
If (FUNCTION003()) Then
PROC004("Previous vote found. You can now edit your vote.", 15, 18)
Delay 18
STRING002 = ""
While ((STRING002 <> "Q") && (STRING002 <> "A")) Do
PROC001(99)
STRING002 = ""
INTEGER003 = 0
While (INTEGER003 == 0) Do
STRING002 = Upper(Inkey())
INTEGER003 = InStr("0123456789AQ", STRING002)
EndWhile
If (INTEGER003 <= 10) Then
PROC001(INTEGER003 - 1)
Endif
EndWhile
If (STRING002 == "Q") PROC006()
Else
STRING003 = Left(String(Date()), 10)
If (OnLocal()) Then
STRING003 = STRING003 + "L"
Else
STRING003 = STRING003 + " "
Endif
PROC004("You have not voted yet. Creating voting slip.", 16, 18)
Delay 18
For INTEGER002 = 0 To 9
PROC001(INTEGER002)
Next
PROC006()
Endif
PROC001(98)
PROC004("Remember, You can return at any time to change your votes", 12, 15)
PROC004("Thank you for taking the time to vote.", 21, 17)
PrintLn
PrintLn
Wait
End
;------------------------------------------------------------------------------
Procedure PROC001(Integer INTEGER004)
Integer INTEGER005
Cls
ResetDisp
PrintLn "@POFF@@X0F @X05▄ @X08░ ░ ░"
PrintLn "@X08 ░ @X05▐@X5D▒@X05▌ @X08░ ░ ░ ░ @X03■"
PrintLn "@X03 @X08░ ░░ @X05▀ @X08░ ░ ░ ░ ░ ░ @X05▄ @X08░░ ░ ░ @X01■ @X03■@X0B█@X03▌"
PrintLn "@X03 @X08░░░▒@X0D▄▄@X05▄@X08░░ ░ ░ ░ ░░░░░ ░ @X05▐@X5D▒@X05▌@X08▓▒░ ░ @X01▌ @X0B█@X03▌"
PrintLn "@X03 @X02▐@X0A█▄@X08░▒▓@X0D███@X08▓▒░░ ░ @X09▄ @X08░@X09███@X08░░░ @X09▄█@X01▌ @X05▀@X08▓█▓▒░░░ ░ @X09▌ @X03■ @X0B▄@X03■"
PrintLn "@X03 @X2A▐@X0A███▄@X05▐@X0D███@X08█▓▓▒▒░ @X09▐██▄ @X0D▄▄▄▄▄▄▄▄▄ @X09███@X08▒░ @X09███▌@X04▀@X0C▀▀▀▀▀@X09▄██▄@X0C▀▀@X0D▐@X5D▄@X0D▄@X05▄@X0C■@X19▐@X09█████▀ @X04▀@X0C▀▀▀ @X01▌@X03■ @X0B▐█@X3B▌@X07"
PrintLn "@X0F @X02▀@X0A▀@X0D▐██@X5D▌@X09████@X19▌@X0F @X09█@X19▐@X09██ @X08░░▒@X05▀@X0D▀████@X09▐██@X08▓▒@X09▐█▀@X0D▄@X5D▄@X0D███▄ @X09▀ @X01▀@X19▀@X09█▌ @X5D▐@X0D███@X01▐@X09█████@X19▌@X08░░░ ░ @X09▄▌@X3B▄@X0B█@X3B▄@X0B▀@X03■"
PrintLn "@X03 @X0A▄▄@X2A▄@X0A██@X5D▐@X0D██▌@X09█████@X01▌@X09▐▌██@X19▌@X0F @X0D█@X5D▄@X05▄@X08░░ @X5D▐@X0D███▌@X09██▀▀██@X0D▐@X08▒░@X05▀@X5D▀@X0D██▌@X09▄ ▄█▀ @X0D████@X09▐██▌@X01▐@X09██@X08░▒░░@X09▄██▌@X0B███@X03▌"
PrintLn "@X02▐@X0A██@X2A▀@X0A▀@X02▀@X0D███@X05▌@X09████▐@X19▌@X09█ ███@X01▌@X0D██▀@X5D▀▄▄@X0D███▀@X09▐██ ▐█▌@X0D▐▄@X05▄▄@X5D▄@X0D██▌@X09█@X08░ @X09▀██▄@X0D▐██▌@X09███@X01▌ @X09▐█▌@X08▒@X01▄@X09█████▄@X0B▀@X03▀■"
PrintLn "@X0A▐▀ @X08▒▓█@X0D███ @X09█▀@X01▀ @X09█▌@X08░@X09▐███▄@X0D▀ @X09███ ██@X01▌ @X0D▀████▀@X09▄█@X08░ @X19▐@X09██▌@X0D██▌@X09██▌▄@X19▀▀@X09██@X19▄@X09███@X19▀@X09▀▀▀▀▀@X01▀@X09▀@X01▀"
PrintLn "@X01 @X0C▀▀@X04▀@X08▓@X05▀@X0D▀▀ @X0C▀▀▀@X04▀@X09▐ @X0C▀@X01▐@X09███@X19▀@X09▀ @X0C▀▀▀▀▀@X04▀ @X09███ @X01▀@X09▀ @X0C▀@X04▀@X08░▒▓█@X09▄██@X19▄@X01▄@X19▄@X09███▌@X0D▀@X5D▀@X0D▌@X09██▀ ▀██▀"
PrintLn "@X09 @X08░ ░▒░░░ ░ @X09' ▀@X01▀ @X08░ ░ ░░▒▒▒░@X01▀@X09▀████▀ ▀ ■@X0DRA@X09Nx@X08<@X02i@X0ACE@X08>@X07"
Select Case (INTEGER004)
Case 0
PROC004("IMPHOBIA VOTER RULES", 30, 14)
PROC004("1) You may not vote for your own group and/or members", 14, 16)
PROC004("2) You may not vote for any members of Imphobia", 14, 17)
PROC004("3) You should enter at least 7 votes for Top 10", 14, 18)
PROC004(" You should enter at least 3 votes for Top 5", 14, 19)
PrintLn
PrintLn
Wait
For INTEGER005 = 14 To 19
AnsiPos 1, INTEGER005
ClrEol
Next
PROC004("You have to vote for : Top 10 DemoGroups, Top 10 Demos, Top 10 Intros,", 6, 14)
PROC004("Top 5 Coders, Top 5 Grafics Artists, Top 5 Musicians, Top 5 Musicdisks", 6, 15)
PROC004("All voters will be listed in the Imphobia voting list.", 14, 17)
PROC004("You can return to this voting at any time and change your votes.", 9, 19)
PrintLn
PrintLn
Wait
Case 1
AnsiPos 1, 14
PrintLn " @X0FUse@X0Br info@X03rmat@X08ion"
PrintLn
PrintLn " @X0FYour Handle@X07..... @X08[@X0B" + FUNCTION001(TSTRING001(1, 1), 35) + "@X08]"
PrintLn " @X0FGroup name@X07...... @X08[@X0B" + FUNCTION001(TSTRING001(1, 2), 35) + "@X08]"
PrintLn " @X0FYour country@X07.... @X08[@X0B" + FUNCTION001(TSTRING001(1, 3), 35) + "@X08]"
PROC005(1, 3, 21, 16, 35)
Case 2
PROC002(2, 10, "DemoGroups")
Case 3
PROC002(3, 10, "Demos")
Case 4
PROC002(4, 10, "Intros")
Case 5
PROC002(5, 5, "Coders")
Case 6
PROC002(6, 5, "Grafics Artists")
Case 7
PROC002(7, 5, "Musicians")
Case 8
PROC002(8, 5, "Music Disks")
Case 9
AnsiPos 1, 14
PrintLn " @X0FWhat do y@X0Bou think @X08about Imp@X03hobia ?"
PrintLn " @X08[@X0B" + FUNCTION001(TSTRING001(9, 1), 75) + "@X08]"
PrintLn " @X08[@X0B" + FUNCTION001(TSTRING001(9, 2), 75) + "@X08]"
PrintLn
PrintLn " @X0FWhat coul@X0Bd be impr@X03oved to Im@X08phobia ?"
PrintLn " @X08[@X0B" + FUNCTION001(TSTRING001(10, 1), 75) + "@X08]"
PrintLn " @X08[@X0B" + FUNCTION001(TSTRING001(10, 2), 75) + "@X08]"
PrintLn " @X08[@X0B" + FUNCTION001(TSTRING001(10, 3), 75) + "@X08]"
PROC005(9, 2, 3, 15, 75)
PROC005(10, 3, 3, 19, 75)
Case 99
AnsiPos 1, 14
PrintLn " @X0F0@X07. @X0FVot@X0Bing @X03Rul@X08es @X0F6@X07. @X0FTop 5 @X0BGrafic@X03s Art@X08ists"
PrintLn " @X0F1@X07. @X0FUs@X0Ber @X03in@X08fo @X0F7@X07. @X0FTop @X0B5 Mu@X03sic@X08ians"
PrintLn " @X0F2@X07. @X0FTop 1@X0B0 De@X03moGr@X08oups @X0F8@X07. @X0FTop 5@X0B Musi@X03cDi@X08sks"
PrintLn " @X0F3@X07. @X0FTop @X0B10 D@X03em@X08os @X0F9@X07. @X0FAbou@X0Bt Im@X03pho@X08bia"
PrintLn " @X0F4@X07. @X0FTo@X0Bp 10 I@X03ntr@X08os @X0FQ@X07. @X0FQu@X0Bit a@X03nd S@X08ave"
PrintLn " @X0F5@X07. @X0FTop @X0B5 C@X03od@X08ers @X0FA@X07. @X0FAbo@X0Brt c@X03han@X08ges"
End Select
EndProc
;------------------------------------------------------------------------------
Procedure PROC002(Integer INTEGER006, Integer INTEGER007, String STRING004)
Integer INTEGER008
AnsiPos 1, 14
For INTEGER008 = 1 To INTEGER007
Print " @X0F", Right(String(INTEGER008), 2), "@X07. @X08[@X0B" + FUNCTION001(TSTRING001(INTEGER006, INTEGER008), 35) + "@X08]"
If (INTEGER008 == 1) Then
PrintLn " " + FUNCTION002("Top " + String(INTEGER007) + " " + STRING004, 0)
Continue
Endif
If (INTEGER008 == 2) Then
PrintLn " " + Left("@X09-@X01=@X09-@X01=@X09-@X01=@X09-@X01=@X09-@X01=@X09-@X01=@X09-@X01=@X09-@X01=@X09-@X01=@X09-@X01=@X09-@X01=@X09-@X01=@X09-@X01=@X09-@X01=@X09-@X01=@X09-@X01=@X09-", (Len(STRING004) + 11) * 5)
Continue
Endif
If (INTEGER008 < INTEGER007) Then
PrintLn
Endif
Next
PROC005(INTEGER006, INTEGER007, 8, 14, 35)
EndProc
;------------------------------------------------------------------------------
Function FUNCTION001(String STRING005, Integer INTEGER009) String
STRING005 = RTrim(STRING005, " ")
FUNCTION001 = STRING005 + Left("...........................................................................", INTEGER009 - Len(STRING005))
EndFunc
;------------------------------------------------------------------------------
Procedure PROC003()
Cls
Delay 2
PROC004("IMPHOBIA VOTER", 32, 9)
PROC004("Version 1.0", 34, 10)
PROC004("(c) 1995 Tasmaniac ∙ /┤CiD ∙ HypernovA", 20, 12)
PROC004("Standby, Searching votes...", 26, 16)
EndProc
;------------------------------------------------------------------------------
Procedure PROC004(String STRING007, Integer INTEGER010, Integer INTEGER011)
String STRING008
Integer INTEGER012
STRING008 = " " + STRING007 + " "
For INTEGER012 = 5 To Len(STRING008)
AnsiPos INTEGER012 + INTEGER010 - 9, INTEGER011
ResetDisp
Print "@X0F" + Mid(STRING008, INTEGER012 - 4, 1)
Print "@X0B" + Mid(STRING008, INTEGER012 - 3, 1)
Print "@X09" + Mid(STRING008, INTEGER012 - 2, 1)
Print "@X01" + Mid(STRING008, INTEGER012 - 1, 1)
Print "@X08" + Mid(STRING008, INTEGER012 - 0, 1)
If (And(INTEGER012, 1)) Delay 1
Next
EndProc
;------------------------------------------------------------------------------
Function FUNCTION002(String STRING009, Integer INTEGER013) String
Integer INTEGER014
Integer INTEGER015
Integer INTEGER016
Integer INTEGER017
INTEGER014 = Len(STRING009)
INTEGER015 = (2 * INTEGER014 + Random(INTEGER014) - INTEGER014 / 2) / 6
INTEGER016 = (4 * INTEGER014 + Random(INTEGER014) - INTEGER014 / 2) / 6
FUNCTION002 = "@X0B" + Mid(STRING009, 1, INTEGER015) + "@X03" + Mid(STRING009, INTEGER015 + 1, INTEGER016 - INTEGER015) + "@X08" + Mid(STRING009, INTEGER016 + 1, INTEGER014 - INTEGER016)
If (INTEGER013 > 0) FUNCTION002 = Left(FUNCTION002, INTEGER013 + 12)
EndFunc
;------------------------------------------------------------------------------
Procedure PROC005(Integer INTEGER017, Integer INTEGER018, Integer INTEGER019, Integer INTEGER020, Integer INTEGER021)
String STRING011
Integer INTEGER022
Integer INTEGER023
INTEGER022 = 1
INTEGER023 = 1
KeyFlush
While (INTEGER023 <= INTEGER018) Do
AnsiPos INTEGER019 + INTEGER022 - 1, INTEGER020 + INTEGER023 - 1
ResetDisp
STRING011 = ""
While ((STRING011 == "")) STRING011 = Inkey()
If (Len(STRING011) == 1) Then
If (STRING011 == Chr(13)) Then
Inc INTEGER023
INTEGER022 = 1
Goto LABEL003
Endif
If (STRING011 == Chr(8)) Then
If (INTEGER022 > 1) Then
TSTRING001(INTEGER017, INTEGER023) = Left(TSTRING001(INTEGER017, INTEGER023), INTEGER022 - 2) + Right(TSTRING001(INTEGER017, INTEGER023), INTEGER021 - INTEGER022 + 1) + " "
AnsiPos INTEGER019, INTEGER020 + INTEGER023 - 1
Print "@X0B" + FUNCTION001(TSTRING001(INTEGER017, INTEGER023), INTEGER021)
Dec INTEGER022
Goto LABEL002
Endif
Print "@BEEP@"
:LABEL002
Goto LABEL003
Endif
If (INTEGER022 <= INTEGER021) Then
TSTRING001(INTEGER017, INTEGER023) = Left(TSTRING001(INTEGER017, INTEGER023), INTEGER022 - 1) + STRING011 + Right(TSTRING001(INTEGER017, INTEGER023), INTEGER021 - INTEGER022)
Print "@X0B" + STRING011
Inc INTEGER022
Goto LABEL003
Endif
Print "@BEEP@"
:LABEL003
Continue
Endif
If ((STRING011 == "LEFT") && (INTEGER022 > 1)) Then
Dec INTEGER022
Continue
Endif
If ((STRING011 == "RIGHT") && (INTEGER022 <= INTEGER021)) Then
Inc INTEGER022
Continue
Endif
If ((STRING011 == "UP") && (INTEGER023 > 1)) Then
Dec INTEGER023
Continue
Endif
If ((STRING011 == "DOWN") && (INTEGER023 < INTEGER018)) Then
Inc INTEGER023
Continue
Endif
Print "@BEEP@"
EndWhile
EndProc
;------------------------------------------------------------------------------
Function FUNCTION003() Boolean
BigStr BIGSTR001
BigStr BIGSTR002
Boolean BOOLEAN002
BigStr BIGSTR003
INTEGER001 = 0
FOpen 1, PPEPath() + PPEName() + ".VOT", 0, 0
FDefIn 1
BOOLEAN002 = 0
While (!Ferr(1) && !BOOLEAN002) Do
FDRead BIGSTR001, 50 * 35 + 25 + 22
FDRead BIGSTR002, 50 * 35
If (Left(BIGSTR001, 25) == Left(U_Name(), 25)) Then
BOOLEAN002 = 1
Continue
Endif
Inc INTEGER001
EndWhile
FClose 1
If (BOOLEAN002) Then
STRING003 = Mid(BIGSTR001, 25 + 1, 11)
For INTEGER002 = 1 To 5
For INTEGER003 = 1 To 10
TSTRING001(INTEGER002, INTEGER003) = Mid(BIGSTR001, 25 + 22 + 1 + (INTEGER003 - 1) * 35 + (INTEGER002 - 1) * 350, 35)
Next
Next
For INTEGER002 = 6 To 8
For INTEGER003 = 1 To 10
TSTRING001(INTEGER002, INTEGER003) = Mid(BIGSTR002, 1 + (INTEGER003 - 1) * 35 + (INTEGER002 - 6) * 350, 35)
Next
Next
For INTEGER003 = 1 To 2
TSTRING001(9, INTEGER003) = Mid(BIGSTR002, 1 + (INTEGER003 - 1) * 75 + 3 * 350, 75)
Next
For INTEGER003 = 1 To 3
TSTRING001(10, INTEGER003) = Mid(BIGSTR002, 1 + (INTEGER003 - 1) * 75 + 3 * 350 + 2 * 75, 75)
Next
Else
INTEGER001 = -1
Endif
FUNCTION003 = BOOLEAN002
EndFunc
;------------------------------------------------------------------------------
Procedure PROC006()
BigStr BIGSTR003
BigStr BIGSTR004
BIGSTR003 = Left(U_Name(), 25) + STRING003 + Left(String(Date()), 10)
If (OnLocal()) Then
BIGSTR003 = BIGSTR003 + "L"
Else
BIGSTR003 = BIGSTR003 + " "
Endif
For INTEGER002 = 1 To 5
For INTEGER003 = 1 To 10
BIGSTR003 = BIGSTR003 + Left(TSTRING001(INTEGER002, INTEGER003), 35)
Next
Next
BIGSTR004 = ""
For INTEGER002 = 6 To 8
For INTEGER003 = 1 To 10
BIGSTR004 = BIGSTR004 + Left(TSTRING001(INTEGER002, INTEGER003), 35)
Next
Next
For INTEGER003 = 1 To 2
BIGSTR004 = BIGSTR004 + Left(TSTRING001(9, INTEGER003), 75)
Next
For INTEGER003 = 1 To 3
BIGSTR004 = BIGSTR004 + Left(TSTRING001(10, INTEGER003), 75)
Next
If (INTEGER001 >= 0) Then
FOpen 1, PPEPath() + PPEName() + ".VOT", 1, 3
FSeek 1, INTEGER001 * (25 + 22 + (10 * 10) * 35), 0
Else
FAppend 1, PPEPath() + PPEName() + ".VOT", 1, 3
Endif
FDefOut 1
FDWrite BIGSTR003, 50 * 35 + 25 + 22
FDWrite BIGSTR004, 50 * 35
FClose 1
EndProc
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 2 End
; 2 Cls
; 1 ClrEol
; 3 Wait
; 108 Goto
; 84 Let
; 11 Print
; 44 PrintLn
; 59 If
; 2 FOpen
; 1 FAppend
; 2 FClose
; 3 ResetDisp
; 4 Delay
; 5 Inc
; 3 Dec
; 8 AnsiPos
; 1 FSeek
; 1 FDefIn
; 1 FDefOut
; 2 FDRead
; 2 FDWrite
; 1 KeyFlush
; 6 EndProc
; 3 EndFunc
;
;
; ■ Functions used :
;
; 1 -
; 19 *
; 4 /
; 107 +
; 25 -
; 24 ==
; 2 <>
; 22 <
; 24 <=
; 4 >
; 41 >=
; 57 !
; 46 &&
; 20 ||
; 6 Len(
; 1 Upper()
; 13 Mid()
; 16 Left()
; 3 Right()
; 1 Ferr()
; 2 Chr()
; 1 InStr()
; 1 RTrim()
; 2 Random()
; 2 Date()
; 2 U_Name()
; 2 Inkey()
; 4 String()
; 3 PPEPath()
; 2 OnLocal()
; 1 AnsiOn()
; 1 And()
; 3 PPEName()
;
;------------------------------------------------------------------------------
;
; Analysis flags : No flag
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 20 For/Next
; 4 While/EndWhile
; 19 If/Then or If/Then/Else
; 1 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------