home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
PCBOARD
/
PCBVP32.ZIP
/
PCBVP.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-03-13
|
31KB
|
1,539 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 TBOOLEAN002(100)
Boolean BOOLEAN003
Boolean BOOLEAN004
Boolean BOOLEAN005
Boolean BOOLEAN006
Boolean BOOLEAN007
Boolean BOOLEAN008
Boolean BOOLEAN009
Boolean BOOLEAN010
Boolean BOOLEAN011
Boolean BOOLEAN012
Boolean BOOLEAN013
Boolean BOOLEAN014
Boolean TBOOLEAN015(15)
Boolean BOOLEAN016
Boolean BOOLEAN017
Boolean BOOLEAN018
Boolean BOOLEAN019
Boolean BOOLEAN020
Boolean BOOLEAN021
Boolean BOOLEAN022
Boolean BOOLEAN023
Boolean BOOLEAN024
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
Integer INTEGER011
Integer TINTEGER012(100)
Integer INTEGER013
Integer TINTEGER014(100)
Integer TINTEGER015(100)
Integer INTEGER016
Integer INTEGER017
Integer INTEGER018
Integer INTEGER019
Integer INTEGER020
Integer INTEGER021
Integer INTEGER022
Integer INTEGER023
String TSTRING001(11,100)
String STRING002
String TSTRING003(11,100)
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String TSTRING009(100)
String STRING010
String TSTRING011(100)
String TSTRING012(100)
String TSTRING013(100)
String TSTRING014(100)
String TSTRING015(100)
String STRING016
String STRING017
String STRING018
String STRING019
String STRING020
String STRING021
String STRING022
String STRING023
String STRING024
String STRING025
String STRING026
String STRING027
String STRING028
String STRING029
String STRING030
String STRING031
String STRING032
String STRING033
String STRING034
String STRING035
String STRING036
String TSTRING037(2)
String TSTRING038(2)
String STRING039
String STRING040
String STRING041
String STRING042
String STRING043
String TSTRING044(3)
String STRING045
Word WORD001
Word WORD002
Word WORD003
Word WORD004
Word WORD005
Word WORD006
Word WORD007
Word WORD008
Word WORD009
Word WORD010
Word WORD011
Word WORD012
Double DOUBLE001
Double DOUBLE002
;------------------------------------------------------------------------------
Cls
BOOLEAN006 = 1
BOOLEAN007 = 1
BOOLEAN005 = 0
INTEGER016 = 0
INTEGER011 = 0
STRING006 = "BPSVP"
BOOLEAN001 = 0
BOOLEAN008 = 0
BOOLEAN009 = 0
TSTRING037(0) = " No"
TSTRING037(1) = "Yes"
TSTRING038(0) = "FALSE"
TSTRING038(1) = "TRUE"
BOOLEAN003 = 1
TBOOLEAN015(0) = 1
TBOOLEAN015(1) = 1
TBOOLEAN015(2) = 1
TBOOLEAN015(3) = 1
TBOOLEAN015(4) = 1
TBOOLEAN015(5) = 1
Gosub LABEL049
If (BOOLEAN008) Goto LABEL001
Gosub LABEL048
:LABEL001
If (BOOLEAN009) Goto LABEL002
Gosub LABEL045
:LABEL002
Gosub LABEL030
PrintLn "Reading Games...This could take a few seconds..."
Gosub LABEL031
STRING045 = STRING028 + "N" + STRING027 + "ext page" + STRING023 + "..." + STRING028 + "P" + STRING027 + "revious page"
TSTRING044(0) = STRING028 + "H" + STRING027 + "elp" + STRING023 + "..." + STRING028 + "I" + STRING027 + "nformation on a game" + STRING023 + "..." + STRING028 + "Q" + STRING027 + "uit"
TSTRING044(1) = STRING028 + "H" + STRING027 + "elp" + STRING023 + "..." + STRING028 + "Q" + STRING027 + "uit"
TSTRING044(2) = STRING028 + "Q" + STRING027 + "uit"
If (INTEGER013) Then
PrintLn "Reading Users...This could take a few seconds..."
FOpen 1, PPEPath() + "vp_users.dat", 0, 3
If (Ferr(1)) Then
INTEGER010 = 5
STRING002 = "Creating VP_USERS.DAT"
Gosub LABEL051
FOpen 1, PPEPath() + "vp_users.dat", 1, 3
Else
Frewind 1
:LABEL003
If (Ferr(1)) Goto LABEL004
Gosub LABEL022
If (TSTRING001(INTEGER003, INTEGER005) <> "") Then
If (TSTRING001(INTEGER003, INTEGER005) == U_Name()) Then
TBOOLEAN002(INTEGER005) = 1
TINTEGER015(INTEGER005) = INTEGER003
Inc INTEGER006
Endif
Inc TINTEGER014(INTEGER005)
Endif
Goto LABEL003
Endif
:LABEL004
FClose 1
Else
Gosub LABEL015
BOOLEAN005 = !INTEGER013
Endif
:LABEL005
If (BOOLEAN005) Goto LABEL008
Gosub LABEL043
If (BOOLEAN001) Goto LABEL006
Gosub LABEL017
BOOLEAN005 = 1
Goto LABEL007
:LABEL006
Gosub LABEL009
PrintLn
STRING010 = "What is your selection"
Gosub LABEL018
Gosub LABEL086
BOOLEAN005 = BOOLEAN023
If (STRING004 == "") Then
Goto LABEL007
Endif
Select Case (STRING004)
Case "C", "c"
If ((CurSec() >= WORD005) && BOOLEAN008) Then
INTEGER017 = 1
BOOLEAN011 = 0
Gosub LABEL064
INTEGER017 = 0
Endif
Case "T", "t"
If ((CurSec() >= WORD005) && BOOLEAN008) Then
Gosub LABEL058
Endif
Case "N", "n"
INTEGER011 = INTEGER011 + 1
If (INTEGER011 > INTEGER016) INTEGER011 = 0
Case "P", "p"
INTEGER011 = INTEGER011 - 1
If (INTEGER011 < 0) INTEGER011 = INTEGER016
Case "I", "i"
INTEGER017 = 2
Gosub LABEL036
INTEGER017 = 0
INTEGER005 = S2I(STRING004, 16)
BOOLEAN016 = 1
Dec INTEGER005
STRING005 = ""
Case
BOOLEAN006 = 0
Gosub LABEL011
Case Else
BOOLEAN007 = 0
Gosub LABEL010
End Select
:LABEL007
Goto LABEL005
:LABEL008
End
:LABEL009
If ((CurSec() >= WORD005) && BOOLEAN008) Then
STRING019 = STRING028 + "C" + STRING027 + "onfigure PCBVP" + STRING023 + "..." + STRING027 + "ini" + STRING028 + "T" + STRING027 + "ialize a game"
Gosub LABEL042
STRING005 = STRING005 + "CcTt"
Endif
Return
:LABEL010
While (!BOOLEAN005 && !BOOLEAN007) Do
BOOLEAN016 = 1
STRING019 = STRING023 + "Available Races in " + TSTRING015(INTEGER005)
Cls
Gosub LABEL042
PrintLn
For INTEGER002 = 0 To 10
If (Strip(TSTRING001(INTEGER002, INTEGER005), " ") == "") Then
STRING004 = I2S(INTEGER002 + 1, 16)
STRING005 = STRING005 + STRING004
STRING019 = STRING004 + " : " + TSTRING003(INTEGER002, INTEGER005)
Gosub LABEL042
Endif
Next
PrintLn
STRING019 = STRING028 + "I" + STRING027 + "nformation on this game " + STRING028 + "H" + STRING027 + "elp " + STRING028 + "Q" + STRING027 + "uit"
Gosub LABEL042
PrintLn
STRING010 = "Which RACE would you like to play"
Gosub LABEL018
Gosub LABEL086
BOOLEAN007 = BOOLEAN023
If (STRING004 == "") Then
Continue
Endif
INTEGER003 = S2I(STRING004, 16)
Dec INTEGER003
TBOOLEAN002(INTEGER005) = 1
TINTEGER015(INTEGER005) = INTEGER003
TSTRING001(INTEGER003, INTEGER005) = U_Name()
FAppend 1, PPEPath() + "vp_users.dat", 2, 0
FPutLn 1, U_Name()
FPutLn 1, INTEGER005
FPutLn 1, INTEGER003
FClose 1
Gosub LABEL020
INTEGER002 = 0
While (((1 < 0) && (INTEGER002 >= TINTEGER012(INTEGER005) - 1)) || ((1 >= 0) && (INTEGER002 <= TINTEGER012(INTEGER005) - 1))) Do
If (TSTRING001(INTEGER002, INTEGER005) <> "") Gosub LABEL021
INTEGER002 = INTEGER002 + 1
EndWhile
INTEGER010 = 1
STRING002 = " Race " + TSTRING003(INTEGER003, INTEGER005)
Gosub LABEL051
STRING002 = " VP Game " + TSTRING015(INTEGER005)
Gosub LABEL051
STRING002 = "joined VGA planets"
Gosub LABEL051
BOOLEAN007 = 1
EndWhile
Return
:LABEL011
STRING007 = TSTRING011(INTEGER005) + "\player" + String(TINTEGER015(INTEGER005) + 1) + ".rst"
STRING008 = TSTRING011(INTEGER005) + "\player" + String(TINTEGER015(INTEGER005) + 1) + ".trn"
While (!BOOLEAN005 && !BOOLEAN006) Do
STRING004 = STRING023 + "Main"
Gosub LABEL088
STRING019 = STRING028 + "D" + STRING027 + "ownload a result (.RST) file"
Gosub LABEL042
STRING019 = STRING028 + "U" + STRING027 + "pload a turn (.TRN) file"
Gosub LABEL042
PrintLn
STRING019 = STRING028 + "I" + STRING027 + "nformation on this game " + STRING028 + "H" + STRING027 + "elp " + STRING028 + "Q" + STRING027 + "uit"
Gosub LABEL042
PrintLn
STRING010 = "Your Choice"
STRING005 = "DdUuQqHh?Ii"
Gosub LABEL018
Gosub LABEL086
BOOLEAN006 = BOOLEAN023
If ((STRING004 == "D") || (STRING004 == "d")) Then
PrintLn
If (Exist(STRING007)) Goto LABEL012
STRING019 = "This game has not yet started or an error occurred the"
Gosub LABEL042
STRING019 = "last time the host was run. Please alert the SysOp!"
Gosub LABEL042
Wait
BOOLEAN006 = 1
Goto LABEL013
:LABEL012
STRING043 = Left(STRING042, InStr(Lower(STRING042), "!file") - 1) + " " + STRING007 + " " + Right(STRING042, Len(STRING042) - InStr(Lower(STRING042), "!file") - 5)
Shell 1, INTEGER004, STRING041, STRING043
STRING016 = ".RST file"
STRING017 = "download"
Gosub LABEL023
BOOLEAN006 = 1
:LABEL013
Continue
Endif
If ((STRING004 == "U") || (STRING004 == "u")) Then
BOOLEAN023 = 1
If (Exist(STRING008)) Then
PrintLn "PLAYER" + I2S(TINTEGER015(INTEGER005) + 1, 10) + ".TRN already exists in the" + " game directory."
STRING010 = "Do you wish to overwrite it?"
STRING005 = "YyNn"
STRING004 = ""
InputStr STRING010, STRING004, S2I(Right(STRING026, 2), 16), 1, STRING005, 4 + 8 + 256
If ((STRING004 == "N") || (STRING004 == "n")) Then
BOOLEAN023 = 0
Goto LABEL014
Endif
Delete STRING008
BOOLEAN023 = 1
Endif
:LABEL014
If (BOOLEAN023) Then
STRING043 = Left(STRING040, InStr(Lower(STRING040), "!file") - 1) + " " + STRING008 + " " + Right(STRING040, Len(STRING040) - InStr(Lower(STRING040), "!file") - 5)
Shell 1, INTEGER004, STRING039, STRING043
STRING016 = ".TRN file"
STRING017 = "upload"
Gosub LABEL023
BOOLEAN006 = 1
Endif
Endif
EndWhile
Return
:LABEL015
If (CurSec() >= SysopSec()) Then
Gosub LABEL058
Else
PrintLn
STRING019 = "No VGA Planets games are set up. Please"
Gosub LABEL042
STRING019 = "ask your SysOp to start a new game!"
Gosub LABEL042
PrintLn
INTEGER010 = 5
STRING002 = "No VGA Planets games are available"
Gosub LABEL051
Wait
Endif
Return
:LABEL016
PrintLn
STRING019 = "Game: " + TSTRING015(INTEGER002 - 1) + " is not yet initialized..."
Gosub LABEL042
STRING019 = "Please notify the SysOp of this error message!"
Gosub LABEL042
Wait
Return
:LABEL017
PrintLn
STRING019 = "All games are full!"
Gosub LABEL042
STRING019 = "Please ask the SysOp to open new games!"
Gosub LABEL042
PrintLn
INTEGER010 = 5
STRING002 = "ALL VGA planets games are full!"
Gosub LABEL051
Wait
Return
:LABEL018
STRING004 = ""
InputStr STRING010, STRING004, S2I(Right(STRING026, 2), 16), 1, STRING005 + "QqHhIi?", 4 + 8 + 256 + 16
Return
:LABEL019
Cls
PrintLn
DispFile PPEPath() + "VPI", 2 + 1 + 4
PrintLn
Wait
Return
:LABEL020
If (Exist(TSTRING012(INTEGER005))) Delete TSTRING012(INTEGER005)
FCreate 7, TSTRING012(INTEGER005), 1, 0
FPutLn 7, "@CLS@"
FPutLn 7, "@X1B This bulletin was generated by PCBVP v3.2 @X07"
FPutLn 7, "@X1B For the latest update, @X07"
FPutLn 7, "@X1B Call -The-Edge-BBS- (703) 491-0083 @X07"
FPutLn 7, "@X1B @X07"
FPutLn 7, "@X0F VGA Planets - Players List - Game # ", S2I(INTEGER005, 16), " - ", "@X07"
FPutLn 7
FPutLn 7, "@X09 Player @X0CRace@X07"
FPutLn 7
FClose 7
Return
:LABEL021
FAppend 7, TSTRING012(INTEGER005), 2, 0
FPutLn 7, "@X09" + Left(TSTRING001(INTEGER002, INTEGER005), 35) + "@X0C" + TSTRING003(INTEGER002, INTEGER005)
FClose 7
Return
:LABEL022
FDGet STRING004
FDGet INTEGER005
FDGet INTEGER003
TSTRING001(INTEGER003, INTEGER005) = STRING004
Return
:LABEL023
If (INTEGER004) Goto LABEL024
INTEGER010 = 2
STRING002 = STRING016 + " " + STRING017 + " " + "for player " + I2S(TINTEGER015(INTEGER005) + 1, 10) + ", game " + I2S(INTEGER005 + 1, 10)
Gosub LABEL051
If (BOOLEAN008 && (STRING017 == "upload")) Then
Gosub LABEL026
ElseIf (STRING017 == "upload") Then
PrintLn
PrintLn "Your .TRN file was uploaded successfully. Please encourage your SysOp"
PrintLn "to register PCBVP. The registered version will check your .TRN files"
PrintLn "for staleness."
Wait
Endif
Goto LABEL025
:LABEL024
INTEGER010 = 3
STRING002 = STRING016 + " " + STRING017 + " " + "aborted..."
Gosub LABEL051
PrintLn
STRING019 = "Your " + STRING016 + "transfer was unsuccessful. Please try again"
Gosub LABEL042
PrintLn
PrintLn "Return code was: " + I2S(INTEGER004, 10)
Wait
:LABEL025
Return
:LABEL026
If (Exist(STRING031)) Delete STRING031
Shell 1, BOOLEAN004, STRING030, TSTRING011(INTEGER005) + " " + I2S(TINTEGER015(INTEGER005), 16) + " " + STRING031
If (Exist(STRING031)) Then
Cls
PrintLn
PrintLn "Your transfer was successful, and a .TRN file checker was run to verify it."
PrintLn "The following output was produced when your .TRN was checked:"
PrintLn
DispFile STRING031, 0
Delete STRING031
Wait
Endif
Return
:LABEL027
FOpen 2, TSTRING014(INTEGER002 - 1), 0, 3
If (Ferr(2)) Goto LABEL028
For INTEGER001 = 0 To 10
FGet 2, TSTRING003(INTEGER001, INTEGER002 - 1)
Next
FClose 2
Goto LABEL029
:LABEL028
Gosub LABEL016
Dec INTEGER002
:LABEL029
Return
:LABEL030
If (Exist(PPEPath() + "VPX.CFG")) Then
FOpen 1, PPEPath() + "VPX.CFG", 0, 0
FGet 1, STRING039
FGet 1, STRING040
FGet 1, STRING041
FGet 1, STRING042
FClose 1
Else
Cls
PrintLn
PrintLn
PrintLn STRING023 + "PCBVP is not properly configured. Please Notify your SysOp!"
Wait
BOOLEAN005 = 1
Endif
Return
:LABEL031
INTEGER013 = 0
FOpen 1, PPEPath() + "vp_games.dat", 0, 3
FDefIn 1
INTEGER002 = 0
:LABEL032
If (Ferr(1)) Goto LABEL034
Inc INTEGER002
TINTEGER014(INTEGER002 - 1) = 0
INTEGER005 = INTEGER002
FDGet TSTRING015(INTEGER002 - 1)
If (Strip(TSTRING015(INTEGER002 - 1), " ") <> "") Then
FDGet TINTEGER012(INTEGER002 - 1)
FDGet TSTRING013(INTEGER002 - 1)
FDGet TSTRING014(INTEGER002 - 1)
FDGet TSTRING012(INTEGER002 - 1)
FDGet TSTRING009(INTEGER002 - 1)
If (Exist(TSTRING014(INTEGER002 - 1))) Goto LABEL033
PrintLn "Creating Race File in PPL Readable Format..."
Shell 0, INTEGER004, "breakrec.exe", TSTRING013(INTEGER002 - 1) + " " + TSTRING014(INTEGER002 - 1) + " 31"
:LABEL033
Gosub LABEL027
FDGet TSTRING011(INTEGER002 - 1)
Else
Dec INTEGER002
Endif
Goto LABEL032
:LABEL034
FClose 1
INTEGER013 = INTEGER002
INTEGER016 = INTEGER013 / 12
Return
:LABEL035
FCreate 1, PPEPath() + "vp_games.dat", 1, 3
FDefOut 1
For INTEGER002 = 1 To INTEGER013
FDPutLn TSTRING015(INTEGER002 - 1)
FDPutLn TINTEGER012(INTEGER002 - 1)
FDPutLn TSTRING013(INTEGER002 - 1)
FDPutLn TSTRING014(INTEGER002 - 1)
FDPutLn TSTRING012(INTEGER002 - 1)
FDPutLn TSTRING009(INTEGER002 - 1)
FDPut TSTRING011(INTEGER002 - 1)
If (INTEGER002 < INTEGER013) FDPutLn
Next
FClose 1
INTEGER016 = INTEGER013 / 12
Return
:LABEL036
If (BOOLEAN016) Goto LABEL039
:LABEL037
If (BOOLEAN017) Goto LABEL038
Gosub LABEL043
STRING010 = "Which game would you like to see information on"
InputStr STRING010, STRING004, S2I(Right(STRING026, 2), 10), 1, STRING005 + "Qq", 4 + 8 + 16 + 256
If ((STRING004 == "Q") || (STRING004 == "q")) Then
BOOLEAN017 = 1
Else
INTEGER005 = S2I(STRING004, 16) - 1
Gosub LABEL041
Endif
Goto LABEL037
:LABEL038
Goto LABEL040
:LABEL039
Gosub LABEL041
:LABEL040
Return
:LABEL041
Cls
PrintLn
DispFile TSTRING012(INTEGER005), 2 + 1 + 4
PrintLn
Wait
Return
:LABEL042
STRING020 = StripAtx(STRING019)
If (Len(STRING020) > 79) Then
PrintLn STRING019 + "@X07"
Else
PrintLn Space((80 - Len(STRING020)) / 2) + STRING019 + "@X07"
Endif
Return
:LABEL043
Cls
STRING005 = ""
PrintLn
STRING019 = STRING023 + "You may select one of the following games:"
Gosub LABEL042
PrintLn
For INTEGER002 = 1 To 12
If (TBOOLEAN002(INTEGER011 * 12 + INTEGER002 - 1) || (TINTEGER014(INTEGER011 * 12 + INTEGER002 - 1) < TINTEGER012(INTEGER011 * 12 + INTEGER002 - 1))) Then
If (TBOOLEAN002(INTEGER011 * 12 + INTEGER002 - 1)) Then
STRING018 = STRING024
STRING004 = Left(TSTRING003(TINTEGER015(INTEGER011 * 12 + INTEGER002 - 1), INTEGER011 * 12 + INTEGER002 - 1), 25)
Goto LABEL044
Endif
STRING018 = STRING025
STRING004 = Left(I2S(TINTEGER012(INTEGER011 * 12 + INTEGER002 - 1) - TINTEGER014(INTEGER011 * 12 + INTEGER002 - 1), 10) + " available races", 25)
:LABEL044
BOOLEAN001 = 1
STRING019 = STRING028 + I2S(INTEGER002, 16) + " " + STRING023 + "- " + STRING018 + Left(TSTRING015(INTEGER011 * 12 + INTEGER002 - 1), 25) + Space(6) + STRING004
Gosub LABEL042
STRING005 = STRING005 + I2S(INTEGER002, 16)
Endif
Next
PrintLn
STRING019 = STRING024 + "■ Games you are in " + STRING025 + "■ Available Games"
Gosub LABEL042
PrintLn
If (INTEGER016 >= 1) Then
STRING019 = STRING045
Gosub LABEL042
Endif
STRING019 = TSTRING044(INTEGER017)
Gosub LABEL042
Return
:LABEL045
BOOLEAN012 = 0
STRING029 = ""
BOOLEAN013 = 1
STRING030 = "CHKTRN"
STRING031 = "RESULT.TST"
BOOLEAN010 = 1
BOOLEAN014 = 1
WORD002 = 0
WORD003 = 0
WORD004 = SysopSec()
WORD005 = SysopSec()
STRING023 = "@X0F"
STRING024 = "@X0D"
STRING025 = "@X09"
STRING026 = "@X1B"
STRING027 = "@X0B"
STRING028 = "@X0C"
STRING032 = "C:\VP"
STRING033 = ""
STRING034 = ""
Return
:LABEL046
If (Exist(PPEPath() + STRING006 + ".CFG")) Then
FOpen 4, PPEPath() + STRING006 + ".CFG", 0, 0
FDefIn 4
FDRead WORD001, 2
Gosub LABEL055
FDRead WORD002, 2
FDRead WORD003, 2
FDRead WORD004, 2
FDRead WORD005, 2
FDRead INTEGER022, 4
FDRead INTEGER018, 4
FDRead INTEGER019, 4
FDRead INTEGER020, 4
FDRead INTEGER021, 4
FDRead INTEGER023, 4
Gosub LABEL056
FDRead WORD006, 2
FDRead STRING029, WORD006
FDRead WORD007, 2
FDRead STRING032, WORD007
FDRead WORD008, 2
FDRead STRING033, WORD008
FDRead WORD009, 2
FDRead STRING034, WORD009
FDRead WORD010, 2
FDRead STRING030, WORD010
FDRead WORD011, 2
FDRead STRING031, WORD011
If (Ferr(4)) Goto LABEL047
BOOLEAN009 = 1
:LABEL047
FClose 4
Endif
Return
:LABEL048
Log " -The-Edge-BBS- (703) 491-0083 Home of PCBVP", 0
Log "Opened PCBVP v3.2 - Please Register", 0
Cls
STRING019 = "@X9BPlease encourage your SysOp to register PCBVP v3.2!@X07"
Gosub LABEL042
STRING019 = "@X0CPCBVP v3.2 - by Dan Fitzpatrick@X07"
Gosub LABEL042
STRING019 = "@X09 ─The─Edge─BBS─@X07"
Gosub LABEL042
STRING019 = "@X09 (703) 491-0083@X07"
Gosub LABEL042
Delay 36
Wait
Return
:LABEL049
If (Exist(PPEPath() + STRING006 + ".KEY")) Then
FOpen 2, PPEPath() + STRING006 + ".KEY", 0, 0
FRead 2, INTEGER009, 1
FRead 2, STRING022, INTEGER009
FRead 2, DOUBLE001, 8
FRead 2, INTEGER007, 4
FRead 2, STRING021, FileInf(PPEPath() + "BPSVP.KEY", 4) - 13 + INTEGER009
FClose 2
STRING004 = STRING021 + STRING022
INTEGER008 = 0
DOUBLE002 = 0
For INTEGER002 = 1 To Len(STRING004)
INTEGER008 = INTEGER008 + S2I(Mid(STRING004, INTEGER002, 1), 36)
DOUBLE002 = DOUBLE002 + S2I(Mid(STRING004, INTEGER002, 1), 36) ^ INTEGER002
Next
If (((INTEGER007 == INTEGER008) && (DOUBLE001 == DOUBLE002)) && (STRING022 == STRING006)) Then
Gosub LABEL046
INTEGER010 = 0
STRING002 = "Registered version of PCBVP v3.2"
Gosub LABEL051
BOOLEAN008 = 1
Goto LABEL050
Endif
INTEGER010 = 5
STRING002 = "Key file error!"
Gosub LABEL051
Endif
:LABEL050
Return
:LABEL051
If (TBOOLEAN015(INTEGER010) || (INTEGER010 > 4)) Then
If (BOOLEAN003 || (INTEGER010 > 4)) Then
Log STRING002, 0
Endif
If (BOOLEAN012) Then
If (Exist(STRING029)) Then
FAppend 6, STRING029, 1, 3
Goto LABEL052
Endif
FCreate 6, STRING029, 1, 3
:LABEL052
If (Ferr(6)) Goto LABEL053
FPutLn 6, STRING002
FClose 6
Goto LABEL054
:LABEL053
Log STRING002, 0
Log "PCBVP v3.2 was unable to write the EXTERNAL LOG FILE", 0
Endif
Endif
:LABEL054
Return
:LABEL055
BOOLEAN003 = IsBitSet(WORD001, 0)
BOOLEAN012 = IsBitSet(WORD001, 1)
TBOOLEAN015(0) = IsBitSet(WORD001, 2)
TBOOLEAN015(1) = IsBitSet(WORD001, 3)
TBOOLEAN015(2) = IsBitSet(WORD001, 4)
TBOOLEAN015(3) = IsBitSet(WORD001, 5)
TBOOLEAN015(4) = IsBitSet(WORD001, 6)
BOOLEAN013 = IsBitSet(WORD001, 7)
BOOLEAN010 = IsBitSet(WORD001, 8)
BOOLEAN014 = IsBitSet(WORD001, 9)
Return
:LABEL056
WORD012 = INTEGER022
Gosub LABEL057
STRING023 = "@X" + STRING004
WORD012 = INTEGER018
Gosub LABEL057
STRING024 = "@X" + STRING004
WORD012 = INTEGER019
Gosub LABEL057
STRING025 = "@X" + STRING004
WORD012 = INTEGER023
Gosub LABEL057
STRING026 = "@X" + STRING004
WORD012 = INTEGER020
Gosub LABEL057
STRING027 = "@X" + STRING004
WORD012 = INTEGER021
Gosub LABEL057
STRING028 = "@X" + STRING004
Return
:LABEL057
If (WORD012 < 16) Then
STRING004 = "0" + Right(I2S(WORD012, 16), 1)
Else
STRING004 = Right(I2S(WORD012, 16), 2)
Endif
Return
:LABEL058
If (INTEGER013 < 100) Then
BOOLEAN024 = 0
INTEGER005 = INTEGER013
Inc INTEGER013
INTEGER016 = INTEGER013 / 12
TSTRING015(INTEGER005) = "VGA Planets Game #" + I2S(INTEGER005 + 1, 10)
TINTEGER012(INTEGER005) = 11
TSTRING011(INTEGER005) = STRING032 + "\" + I2S(INTEGER005 + 1, 10)
TSTRING013(INTEGER005) = TSTRING011(INTEGER005) + "\race.nm"
TSTRING014(INTEGER005) = TSTRING011(INTEGER005) + "\race.ppl"
TSTRING012(INTEGER005) = TSTRING011(INTEGER005) + "\pl_blt"
TSTRING009(INTEGER005) = TSTRING011(INTEGER005) + "\sc_blt"
:LABEL059
If (BOOLEAN024) Goto LABEL063
Cls
STRING004 = "Game Initialization"
Gosub LABEL088
PrintLn
STRING019 = TSTRING015(INTEGER005)
WORD012 = 47
Gosub LABEL084
PrintLn " " + STRING028 + "G" + STRING027 + "ame Name :" + STRING023 + RTrim(Left(TSTRING015(INTEGER005), 47), " ") + STRING004
PrintLn " " + STRING028 + "M" + STRING027 + "ax Players :" + STRING023 + I2S(TINTEGER012(INTEGER005), 10)
STRING019 = TSTRING011(INTEGER005)
Gosub LABEL084
PrintLn " " + STRING028 + "P" + STRING027 + "ath to Game Files :" + STRING023 + RTrim(Left(TSTRING011(INTEGER005), 47), " ") + STRING004
STRING019 = TSTRING013(INTEGER005)
Gosub LABEL084
PrintLn " " + STRING028 + "R" + STRING027 + "ace Names File :" + STRING023 + RTrim(Left(TSTRING013(INTEGER005), 47), " ") + STRING004
STRING019 = TSTRING014(INTEGER005)
Gosub LABEL084
PrintLn " " + STRING028 + "T" + STRING027 + "emp Race Name File :" + STRING023 + RTrim(Left(TSTRING014(INTEGER005), 47), " ") + STRING004
STRING019 = TSTRING012(INTEGER005)
Gosub LABEL084
PrintLn " " + STRING028 + "N" + STRING027 + "ames Bulletin :" + STRING023 + RTrim(Left(TSTRING012(INTEGER005), 47), " ") + STRING004
STRING019 = TSTRING009(INTEGER005)
Gosub LABEL084
PrintLn " " + STRING028 + "S" + STRING027 + "cores Bulletin :" + STRING023 + RTrim(Left(TSTRING009(INTEGER005), 47), " ") + STRING004
PrintLn
STRING019 = STRING028 + "A" + STRING027 + "ccept"
Gosub LABEL042
STRING019 = STRING028 + "H" + STRING027 + "elp" + STRING023 + "..." + STRING028 + "Q" + STRING027 + "uit"
Gosub LABEL042
STRING005 = "GMPRTNSgmprtnsAaQqHh?"
PrintLn
STRING010 = "What is your selection"
Gosub LABEL018
Gosub LABEL086
STRING010 = ""
BOOLEAN024 = BOOLEAN023
If (BOOLEAN024) STRING004 = "Q"
Select Case (STRING004)
Case "G", "g"
STRING010 = " "
STRING004 = "Game Name"
STRING035 = TSTRING015(INTEGER005)
Gosub LABEL083
TSTRING015(INTEGER005) = STRING035
Case "M", "m"
Cls
TINTEGER012(INTEGER005) = 12
While ((TINTEGER012(INTEGER005) > 11) || (TINTEGER012(INTEGER005) < 1)) Do
STRING010 = "How many players should be allowed"
InputStr STRING010, STRING004, S2I(Right(STRING026, 2), 10), 2, Mask_Num(), 256 + 16
TINTEGER012(INTEGER005) = S2I(STRING004, 10)
EndWhile
Case "P", "p"
STRING004 = "Game Directory"
STRING035 = TSTRING011(INTEGER005)
Gosub LABEL083
TSTRING011(INTEGER005) = STRING035
TSTRING013(INTEGER005) = TSTRING011(INTEGER005) + "\race.nm"
TSTRING014(INTEGER005) = TSTRING011(INTEGER005) + "\race.ppl"
TSTRING012(INTEGER005) = TSTRING011(INTEGER005) + "\pl_blt"
TSTRING009(INTEGER005) = TSTRING011(INTEGER005) + "\sc_blt"
Case "R", "r"
STRING004 = "Race Names File"
STRING035 = TSTRING013(INTEGER005)
Gosub LABEL083
TSTRING013(INTEGER005) = STRING035
Case "T", "t"
STRING004 = "Temp Race File"
STRING035 = TSTRING014(INTEGER005)
Gosub LABEL083
TSTRING014(INTEGER005) = STRING035
Case "N", "n"
STRING004 = "Game Directory"
STRING035 = TSTRING012(INTEGER005)
Gosub LABEL083
TSTRING012(INTEGER005) = STRING035
Case "S", "s"
STRING004 = "Game Directory"
STRING035 = TSTRING009(INTEGER005)
Gosub LABEL083
TSTRING009(INTEGER005) = STRING035
Case "Q", "q"
TSTRING015(INTEGER005) = ""
TINTEGER012(INTEGER005) = 0
TSTRING011(INTEGER005) = ""
TSTRING013(INTEGER005) = ""
TSTRING014(INTEGER005) = ""
TSTRING012(INTEGER005) = ""
TSTRING009(INTEGER005) = ""
Dec INTEGER013
BOOLEAN024 = 1
Case "A", "a"
Cls
If (Exist(TSTRING013(INTEGER005))) Goto LABEL060
PrintLn "The game must be created before it can be added to PCBVP..."
TSTRING015(INTEGER005) = ""
TINTEGER012(INTEGER005) = 0
TSTRING011(INTEGER005) = ""
TSTRING013(INTEGER005) = ""
TSTRING014(INTEGER005) = ""
TSTRING012(INTEGER005) = ""
TSTRING009(INTEGER005) = ""
Dec INTEGER013
Goto LABEL062
:LABEL060
If (Exist(TSTRING014(INTEGER005))) Goto LABEL061
Shell 0, INTEGER004, "breakrec.exe", TSTRING013(INTEGER005) + " " + TSTRING014(INTEGER005) + " 31"
:LABEL061
INTEGER002 = INTEGER005 + 1
Gosub LABEL027
Cls
PrintLn
PrintLn
PrintLn
STRING019 = STRING023 + "Writing games file now..."
Gosub LABEL042
Gosub LABEL035
STRING019 = STRING023 + "Finished writing games..."
Gosub LABEL042
:LABEL062
BOOLEAN024 = 1
Wait
End Select
Goto LABEL059
:LABEL063
Else
Cls
PrintLn
PrintLn
PrintLn
STRING019 = STRING023 + "I'm sorry, but PCBVP can only handle up to 100 games..."
Gosub LABEL042
Wait
Endif
Return
Cls
PrintLn
PrintLn
PrintLn
STRING019 = STRING023 + "This option will not be functional until command"
Gosub LABEL042
STRING019 = STRING023 + "line versions of MASTER and HCONFIG are available."
Gosub LABEL042
Wait
Return
:LABEL064
If (BOOLEAN011) Goto LABEL065
STRING004 = "Configuration"
Gosub LABEL088
STRING019 = STRING028 + "F" + STRING027 + "ile Locations..."
Gosub LABEL042
STRING019 = STRING028 + "D" + STRING027 + "isplay Options..."
Gosub LABEL042
STRING019 = STRING028 + "S" + STRING027 + "ecurity Levels..."
Gosub LABEL042
STRING019 = STRING028 + "L" + STRING027 + "ogging Options..."
Gosub LABEL042
STRING019 = STRING028 + "T" + STRING027 + "esting Options..."
Gosub LABEL042
PrintLn
STRING019 = STRING028 + "H" + STRING027 + "elp" + STRING023 + "..." + STRING028 + "Q" + STRING027 + "uit"
Gosub LABEL042
PrintLn
STRING005 = "Hh?QqFfDdSsLlTt"
STRING010 = "What is your choice?"
Gosub LABEL018
Gosub LABEL086
BOOLEAN011 = BOOLEAN023
Select Case (STRING004)
Case "F", "f"
Gosub LABEL067
Case "D", "d"
Gosub LABEL070
Case "S", "s"
Gosub LABEL073
Case "L", "l"
Gosub LABEL076
Case "T", "t"
Gosub LABEL079
End Select
Goto LABEL064
:LABEL065
Gosub LABEL089
Return
:LABEL066
Cls
PrintLn
PrintLn STRING023 + "Sorry, there's no helping SysOps! <g>"
PrintLn "-- The next release will have help here."
PrintLn
Wait
Return
:LABEL067
BOOLEAN018 = 0
:LABEL068
If (BOOLEAN018) Goto LABEL069
STRING004 = "File Options"
Gosub LABEL088
STRING019 = STRING032
WORD012 = 50
Gosub LABEL084
PrintLn " " + STRING027 + "e" + STRING028 + "X" + STRING027 + "ecutables Directory: " + STRING023 + RTrim(Left(STRING032, 50), " ") + STRING004
STRING019 = STRING033
Gosub LABEL084
PrintLn " " + STRING028 + "T" + STRING027 + "emplate Directory : " + STRING023 + RTrim(Left(STRING033, 50), " ") + STRING004
STRING019 = STRING034
Gosub LABEL084
PrintLn " " + STRING027 + "e" + STRING028 + "V" + STRING027 + "ent Batch File : " + STRING023 + RTrim(Left(STRING034, 50), " ") + STRING004
PrintLn
STRING019 = STRING028 + "H" + STRING027 + "elp" + STRING023 + "..." + STRING028 + "Q" + STRING027 + "uit"
Gosub LABEL042
STRING005 = "xXtTvVhHqQ?"
PrintLn
STRING010 = "What is your selection"
Gosub LABEL018
Gosub LABEL086
BOOLEAN018 = BOOLEAN023
Select Case (STRING004)
Case "X", "x"
STRING004 = "Executable Files Directory"
STRING035 = STRING032
Gosub LABEL083
STRING032 = STRING035
Case "T", "t"
STRING004 = "Game Template Directory"
STRING035 = STRING033
Gosub LABEL083
STRING033 = STRING035
Case "V", "v"
STRING004 = "Host Event Batch File Name"
STRING035 = STRING034
Gosub LABEL083
STRING034 = STRING035
End Select
Goto LABEL068
:LABEL069
BOOLEAN018 = 0
Return
:LABEL070
BOOLEAN019 = 0
If (AnsiOn()) Goto LABEL071
Cls
PrintLn
PrintLn
STRING019 = STRING023 + "This option requires ANSI graphics!" + " Please Turn on ANSI and try again."
Gosub LABEL042
PrintLn
PrintLn
Wait
BOOLEAN019 = 1
:LABEL071
If (BOOLEAN019) Goto LABEL072
STRING004 = "Display Options"
Gosub LABEL088
STRING019 = PPEPath() + "COLOR"
If (Exist(PPEPath() + "COLOR")) Then
DispFile PPEPath() + "COLOR", 2 + 1 + 4
Endif
PrintLn
STRING019 = STRING028 + "S" + STRING027 + "creen Header Color " + STRING023 + "■"
Gosub LABEL042
STRING019 = STRING028 + "J" + STRING027 + "oined Games Color " + STRING024 + "■"
Gosub LABEL042
STRING019 = STRING028 + "A" + STRING027 + "vailable Games Color " + STRING025 + "■"
Gosub LABEL042
STRING019 = STRING028 + "M" + STRING027 + "enu HighLight Color " + STRING028 + "■"
Gosub LABEL042
STRING019 = STRING028 + "O" + STRING027 + "ption Text Color " + STRING027 + "■"
Gosub LABEL042
STRING019 = STRING028 + "P" + STRING027 + "romt Color " + STRING026 + "■"
Gosub LABEL042
STRING019 = STRING028 + "H" + STRING027 + "elp" + STRING023 + "..." + STRING028 + "Q" + STRING027 + "uit"
Gosub LABEL042
STRING005 = "SJAMOPsjamophHqQ?"
STRING010 = "What is your selection"
Gosub LABEL018
Gosub LABEL086
BOOLEAN019 = BOOLEAN023
Select Case (STRING004)
Case "S", "s"
STRING017 = "Setting SCREEN HEADER color:"
STRING018 = STRING023
Gosub LABEL085
STRING023 = STRING019
INTEGER022 = WORD012
Case "J", "j"
STRING017 = "Settting JOINED GAMES color:"
STRING018 = STRING024
Gosub LABEL085
STRING024 = STRING019
INTEGER018 = WORD012
Case "A", "a"
STRING017 = "Setting AVAILABLE GAMES color:"
STRING018 = STRING025
Gosub LABEL085
STRING025 = STRING019
INTEGER019 = WORD012
Case "M", "m"
STRING017 = "Setting MENU HIGHLIGHT color:"
STRING018 = STRING028
Gosub LABEL085
STRING028 = STRING019
INTEGER021 = WORD012
Case "O", "o"
STRING017 = "Setting MENU OPTION color:"
STRING018 = STRING027
Gosub LABEL085
STRING027 = STRING019
INTEGER020 = WORD012
Case "P", "p"
STRING017 = "Setting PROMPT color:"
STRING018 = STRING026
Gosub LABEL085
STRING026 = STRING019
INTEGER023 = WORD012
End Select
Goto LABEL071
:LABEL072
Return
:LABEL073
BOOLEAN020 = 0
:LABEL074
If (BOOLEAN020) Goto LABEL075
STRING004 = "Security Levels"
Gosub LABEL088
STRING019 = STRING023 + "Security Levels Required For -"
Gosub LABEL042
STRING019 = STRING028 + "J" + STRING027 + "oining a Game " + STRING023 + Right(I2S(WORD002, 10), 3)
Gosub LABEL042
STRING019 = STRING028 + "M" + STRING027 + "ultiple Games " + STRING023 + Right(I2S(WORD003, 10), 3)
Gosub LABEL042
STRING019 = STRING028 + "C" + STRING027 + "reate New Games " + STRING023 + Right(I2S(WORD004, 10), 3)
Gosub LABEL042
STRING019 = STRING028 + "S" + STRING027 + "ysOp Functions " + STRING023 + Right(I2S(WORD005, 10), 3)
Gosub LABEL042
PrintLn
STRING019 = STRING028 + "H" + STRING027 + "elp" + STRING023 + "..." + STRING028 + "Q" + STRING027 + "uit"
Gosub LABEL042
STRING005 = "JjMmCcSs?"
STRING010 = "What is your selection"
Gosub LABEL018
Gosub LABEL086
BOOLEAN020 = BOOLEAN023
Select Case (STRING004)
Case "J", "j"
STRING019 = "Joining a Game"
Gosub LABEL082
WORD002 = WORD012
Case "M", "m"
STRING019 = "Multiple Games"
Gosub LABEL082
WORD003 = WORD012
Case "C", "c"
STRING019 = "Initializing Games"
Gosub LABEL082
WORD004 = WORD012
Case "S", "s"
STRING019 = "SysOp Functions"
Gosub LABEL082
If (WORD012 > CurSec()) Then
PrintLn "You can not set a security level higher than your own!"
WORD012 = CurSec()
Wait
Endif
WORD005 = WORD012
End Select
Goto LABEL074
:LABEL075
Return
:LABEL076
BOOLEAN021 = 0
TBOOLEAN015(6) = BOOLEAN003
TBOOLEAN015(7) = BOOLEAN012
:LABEL077
If (BOOLEAN021) Goto LABEL078
STRING004 = "Logging Options"
Gosub LABEL088
PrintLn STRING023 + Space(15) + "Log to -"
PrintLn STRING027 + Space(26) + STRING028 + "C" + STRING027 + "allers Log " + Space(5) + STRING023 + TSTRING037(BOOLEAN003)
PrintLn STRING027 + Space(26) + STRING028 + "E" + STRING027 + "xternal File " + Space(5) + STRING023 + TSTRING037(BOOLEAN012)
STRING019 = STRING029
WORD012 = 36
Gosub LABEL084
PrintLn STRING027 + Space(28) + "file" + STRING028 + "N" + STRING027 + "ame: " + STRING023 + Left(STRING029, 36) + STRING004
PrintLn
PrintLn STRING023 + Space(15) + "Log -"
PrintLn STRING027 + Space(26) + STRING028 + "P" + STRING027 + "rogram Entry " + Space(5) + STRING023 + TSTRING037(TBOOLEAN015(0))
PrintLn STRING027 + Space(26) + STRING028 + "J" + STRING027 + "oined Game " + Space(5) + STRING023 + TSTRING037(TBOOLEAN015(1))
PrintLn STRING027 + Space(26) + STRING028 + "F" + STRING027 + "ile Transfer " + Space(5) + STRING023 + TSTRING037(TBOOLEAN015(2))
PrintLn STRING027 + Space(26) + STRING028 + "A" + STRING027 + "borted Transfer " + Space(5) + STRING023 + TSTRING037(TBOOLEAN015(3))
PrintLn STRING027 + Space(26) + STRING028 + "R" + STRING027 + "esult of Test " + Space(5) + STRING023 + TSTRING037(TBOOLEAN015(4))
PrintLn
STRING019 = STRING028 + "H" + STRING027 + "elp" + STRING023 + "..." + STRING028 + "Q" + STRING027 + "uit"
Gosub LABEL042
STRING005 = "PJFAR?CEpjfarceNnHhQq"
PrintLn
STRING010 = "What is your selection"
Gosub LABEL018
Gosub LABEL086
BOOLEAN021 = BOOLEAN023
If ((STRING004 == "N") || (STRING004 == "n")) Then
STRING004 = "External Log Filename"
STRING035 = STRING029
Gosub LABEL083
STRING029 = STRING035
STRING004 = ""
Else
WORD012 = InStr(STRING005, Upper(STRING004)) - 1
BOOLEAN023 = !TBOOLEAN015(WORD012)
TBOOLEAN015(WORD012) = BOOLEAN023
BOOLEAN003 = TBOOLEAN015(6)
BOOLEAN012 = TBOOLEAN015(7)
STRING004 = ""
Endif
Goto LABEL077
:LABEL078
Return
:LABEL079
BOOLEAN022 = 0
TBOOLEAN015(8) = BOOLEAN013
TBOOLEAN015(9) = BOOLEAN010
TBOOLEAN015(10) = BOOLEAN014
:LABEL080
If (BOOLEAN022) Goto LABEL081
STRING004 = "Test Options"
Gosub LABEL088
STRING019 = STRING028 + "C" + STRING027 + "heck .TRN File : " + STRING023 + TSTRING037(BOOLEAN013)
Gosub LABEL042
STRING019 = STRING028 + "D" + STRING027 + "isplay Test Result : " + STRING023 + TSTRING037(BOOLEAN010)
Gosub LABEL042
STRING019 = STRING028 + "R" + STRING027 + "emove Failed .TRN : " + STRING023 + TSTRING037(BOOLEAN014)
Gosub LABEL042
INTEGER008 = (80 - Len(StripAtx(STRING019))) / 2
STRING019 = STRING030
WORD012 = 52 - INTEGER008
Gosub LABEL084
PrintLn Space(INTEGER008) + STRING028 + "B" + STRING027 + "atch File for Test :" + Left(STRING030, 80 - INTEGER008 - 25) + STRING004
STRING019 = STRING031
Gosub LABEL084
PrintLn Space(INTEGER008) + STRING028 + "T" + STRING027 + "est Output File :" + Left(STRING031, 80 - INTEGER008 - 25) + STRING004
STRING004 = ""
PrintLn
STRING005 = "CDRBTcdrbtHh?Qq"
STRING019 = STRING028 + "H" + STRING027 + "elp" + STRING023 + "..." + STRING028 + "Q" + STRING027 + "uit"
Gosub LABEL042
PrintLn
STRING010 = "What is your selection"
Gosub LABEL018
Gosub LABEL086
BOOLEAN022 = BOOLEAN023
Select Case (STRING004)
Case "B", "b"
STRING004 = ".TRN Test Batch File"
STRING035 = STRING030
Gosub LABEL083
STRING030 = STRING035
Case "T", "t"
STRING004 = ".TRN Test Output File"
STRING035 = STRING031
Gosub LABEL083
STRING031 = STRING035
Case 4
BOOLEAN023 = !TBOOLEAN015(7 + InStr(STRING005, Upper(STRING004)))
TBOOLEAN015(7 + InStr(STRING005, Upper(STRING004))) = BOOLEAN023
BOOLEAN013 = TBOOLEAN015(8)
BOOLEAN010 = TBOOLEAN015(9)
BOOLEAN014 = TBOOLEAN015(10)
End Select
Goto LABEL080
:LABEL081
Return
:LABEL082
STRING010 = "What Should The New Security Level For " + STRING019 + " Be"
InputStr STRING010, STRING004, S2I(Right(STRING026, 2), 16), 3, Mask_Num(), 2 + 4 + 16 + 256
WORD012 = S2I(STRING004, 10)
Return
:LABEL083
STRING005 = Mask_Path() + STRING010
Cls
PrintLn
STRING019 = STRING023 + "The VGA Planets " + STRING004 + " is Currently:"
Gosub LABEL042
PrintLn STRING028 + STRING035
PrintLn
PrintLn STRING023 + "Please Enter The New " + STRING004 + ": " + STRING028
WORD012 = 0
STRING035 = ""
STRING036 = ""
While (STRING036 <> Chr(13)) Do
STRING036 = Inkey()
If ((WORD012 > 255) && (STRING036 <> Chr(13))) Then
Print Chr(7)
Backup 1
Continue
Endif
If (InStr(STRING005, STRING036)) Then
Print STRING036
STRING035 = STRING035 + STRING036
Inc WORD012
Continue
Endif
If ((STRING036 == Chr(8)) && (WORD012 > 0)) Then
Backup 1
Print " "
Backup 1
Dec WORD012
STRING035 = Left(STRING035, WORD012)
Endif
EndWhile
Return
:LABEL084
If (Len(STRING019) > WORD012) Then
STRING004 = "..."
Else
STRING004 = ""
Endif
Return
:LABEL085
Cls
PrintLn
DispFile PPEPath() + "COLOR", 2 + 1 + 4
PrintLn
PrintLn STRING018 + STRING017
PrintLn
PrintLn STRING023 + "Choose from the table above:"
STRING005 = Mask_Num() + "AaBbCcDdEeFf"
STRING010 = "Which background attribute should I use"
InputStr STRING010, STRING004, S2I(Right(STRING026, 2), 16), 1, STRING005, 8 + 256 + 16
STRING019 = "@X" + Upper(STRING004)
STRING010 = "Which foreground attribute should I use"
InputStr STRING010, STRING004, S2I(Right(STRING026, 2), 16), 1, STRING005, 8 + 256 + 16
STRING019 = STRING019 + Upper(STRING004)
WORD012 = S2I(Right(STRING019, 2), 16)
Return
:LABEL086
BOOLEAN023 = 0
Select Case (STRING004)
Case "H", "h", "?"
Gosub LABEL087
STRING004 = ""
Case "Q", "q"
BOOLEAN023 = 1
STRING004 = ""
End Select
Return
:LABEL087
Select Case (INTEGER017)
Case 0
Gosub LABEL019
Case 1
Gosub LABEL066
Case "I", "i"
Gosub LABEL036
End Select
Return
:LABEL088
STRING019 = STRING023 + "VGA Planets Interface Program " + STRING004 + " Menu"
Cls
Gosub LABEL042
PrintLn
Return
:LABEL089
If (Exist(PPEPath() + STRING006 + ".CFG")) Delete PPEPath() + STRING006 + ".CFG"
FOpen 4, PPEPath() + STRING006 + ".CFG", 1, 3
WORD001 = BOOLEAN003 + 2 * BOOLEAN012 + 4 * TBOOLEAN015(0) + 8 * TBOOLEAN015(1) + 16 * TBOOLEAN015(2) + 32 * TBOOLEAN015(3) + 64 * TBOOLEAN015(4) + 128 * BOOLEAN013 + 256 * BOOLEAN010 + 512 * BOOLEAN014
Gosub LABEL055
WORD012 = WORD001
WORD001 = BOOLEAN003 + 2 * BOOLEAN012 + 4 * TBOOLEAN015(0) + 8 * TBOOLEAN015(1) + 16 * TBOOLEAN015(2) + 32 * TBOOLEAN015(3) + 64 * TBOOLEAN015(4) + 128 * BOOLEAN013 + 256 * BOOLEAN010 + 512 * BOOLEAN014
If (WORD001 <> WORD012) Then
Cls
PrintLn "Original flags: " + I2S(WORD012, 10)
PrintLn "New flags : " + I2S(WORD001, 10)
Wait
Endif
FWrite 4, WORD001, 2
FWrite 4, WORD002, 2
FWrite 4, WORD003, 2
FWrite 4, WORD004, 2
FWrite 4, WORD005, 2
FWrite 4, S2I(Right(STRING023, 2), 16), 4
FWrite 4, S2I(Right(STRING024, 2), 16), 4
FWrite 4, S2I(Right(STRING025, 2), 16), 4
FWrite 4, S2I(Right(STRING027, 2), 16), 4
FWrite 4, S2I(Right(STRING028, 2), 16), 4
FWrite 4, S2I(Right(STRING026, 2), 16), 4
WORD006 = Len(STRING029)
FWrite 4, WORD006, 2
FWrite 4, STRING029, WORD006
WORD007 = Len(STRING032)
FWrite 4, WORD007, 2
FWrite 4, STRING032, WORD007
WORD008 = Len(STRING033)
FWrite 4, WORD008, 2
FWrite 4, STRING033, WORD008
WORD009 = Len(STRING034)
FWrite 4, WORD009, 2
FWrite 4, STRING034, WORD009
WORD010 = Len(STRING030)
FWrite 4, WORD010, 2
FWrite 4, STRING030, WORD010
WORD011 = Len(STRING031)
FWrite 4, WORD011, 2
FWrite 4, STRING031, WORD011
If (Ferr(4)) Goto LABEL090
BOOLEAN009 = 1
Goto LABEL091
:LABEL090
Cls
PrintLn "An Error Occurred While Writing The Config File!"
Wait
:LABEL091
FClose 4
Return
Return
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 End
; 21 Cls
; 19 Wait
; 202 Goto
; 446 Let
; 3 Print
; 108 PrintLn
; 127 If
; 5 DispFile
; 3 FCreate
; 8 FOpen
; 3 FAppend
; 12 FClose
; 5 FGet
; 14 FPutLn
; 5 Delete
; 5 Log
; 7 InputStr
; 180 Gosub
; 47 Return
; 1 Delay
; 5 Inc
; 7 Dec
; 5 Shell
; 3 Backup
; 1 Frewind
; 5 FRead
; 23 FWrite
; 2 FDefIn
; 1 FDefOut
; 10 FDGet
; 1 FDPut
; 7 FDPutLn
; 23 FDRead
;
;
; ■ Functions used :
;
; 1 ^
; 27 *
; 5 /
; 599 +
; 51 -
; 97 ==
; 6 <>
; 13 <
; 6 <=
; 9 >
; 17 >=
; 126 !
; 22 &&
; 53 ||
; 14 Len(
; 4 Lower()
; 6 Upper()
; 2 Mid()
; 19 Left()
; 22 Right()
; 21 Space()
; 7 Ferr()
; 4 Chr()
; 9 InStr()
; 9 RTrim()
; 3 U_Name()
; 2 StripAtx()
; 2 Strip()
; 1 Inkey()
; 2 String()
; 3 Mask_Num()
; 1 Mask_Path()
; 20 PPEPath()
; 3 SysopSec()
; 6 CurSec()
; 14 Exist()
; 20 I2S()
; 22 S2I()
; 1 AnsiOn()
; 1 FileInf()
; 10 IsBitSet()
;
;------------------------------------------------------------------------------
;
; Analysis flags : Ss
;
; 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
;
; 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
;
; 5 For/Next
; 5 While/EndWhile
; 43 If/Then or If/Then/Else
; 9 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------