home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.wwiv.com
/
ftp.wwiv.com.zip
/
ftp.wwiv.com
/
pub
/
BBS
/
BMS100.ZIP
/
BMS001.DAT
/
BMS.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-11-04
|
15KB
|
871 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
Boolean BOOLEAN003
Boolean BOOLEAN004
Boolean BOOLEAN005
Boolean BOOLEAN006
Boolean BOOLEAN007
Boolean BOOLEAN008
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
Integer INTEGER014
Integer INTEGER015
Integer INTEGER016
Integer INTEGER017
Integer INTEGER018
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 STRING013
String STRING014
String STRING015
String STRING016
String STRING017
String STRING018
String STRING019
String TSTRING020(11)
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 STRING037
String STRING038
String STRING039
String STRING040
String STRING041
String STRING042
String STRING043
String STRING044
String STRING045
String STRING046
String STRING052
Declare Function FUNCTION001(String STRING051) String
Declare Procedure PROC001(Integer INTEGER019, Var String STRING047, Var String STRING048, Var String STRING049, Var String STRING050)
;------------------------------------------------------------------------------
STRING017 = "v1.00"
STRING018 = PPEName()
STRING041 = "LST"
INTEGER009 = 0
If (GrafMode() == "R") Then
Newline
PrintLn "!|1K|*|w0000270N12|10$SBARON$|#|#|#"
Color 31
Color 7
Endif
If (Exist(PPEPath() + PPEName() + ".CFG") == 0) Then
Color 9
Print " * "
Color 3
PrintLn "Can not find BMS.CFG config file, run BMSETUP.EXE program to create it."
Else
FOpen 1, PPEPath() + PPEName() + ".CFG", 2, 0
FGet 1, STRING001
If (Len(RTrim(STRING001, Chr(32))) == 0) STRING001 = "Unknown Bulletin Board System"
FGet 1, STRING002
If (Len(RTrim(STRING002, Chr(32))) == 0) STRING002 = " "
FGet 1, BOOLEAN001
If (Len(RTrim(BOOLEAN001, Chr(32))) == 0) BOOLEAN001 = 0
FGet 1, BOOLEAN002
If (Len(RTrim(BOOLEAN002, Chr(32))) == 0) BOOLEAN002 = 1
FGet 1, INTEGER002
If (Len(RTrim(INTEGER002, Chr(32))) == 0) INTEGER002 = 12
FGet 1, STRING003
If (Len(RTrim(STRING003, Chr(32))) == 0) STRING003 = PPEPath()
FGet 1, STRING004
If (Len(RTrim(STRING004, Chr(32))) == 0) STRING004 = PPEPath()
FGet 1, STRING005
If (Len(RTrim(STRING005, Chr(32))) == 0) STRING005 = PPEPath()
FGet 1, STRING006
If (Len(RTrim(STRING006, Chr(32))) == 0) STRING006 = PPEPath()
FGet 1, INTEGER003
If (Len(RTrim(INTEGER003, Chr(32))) == 0) INTEGER003 = 2400
FGet 1, BOOLEAN003
If (Len(RTrim(BOOLEAN003, Chr(32))) == 0) BOOLEAN003 = 1
FGet 1, BOOLEAN004
If (Len(RTrim(BOOLEAN004, Chr(32))) == 0) BOOLEAN004 = 0
FGet 1, STRING007
If (Len(RTrim(STRING007, Chr(32))) == 0) STRING007 = "BLT.BMS"
FGet 1, STRING008
If (Len(RTrim(STRING008, Chr(32))) == 0) STRING008 = "Sysop"
FClose 1
If (Exist(PPEPath() + "BMS.CLR") == 0) Then
STRING009 = "03"
STRING010 = "08"
STRING011 = "1F"
Else
FOpen 1, PPEPath() + "BMS.CLR", 2, 0
FRead 1, STRING009, 2
FSeek 1, 4, 1
FRead 1, STRING010, 2
FRead 1, STRING011, 2
FClose 1
Endif
STRING009 = "@X" + STRING009
STRING010 = "@X" + STRING010
STRING011 = "@X" + STRING011
If (CurConf() <> 0) STRING041 = I2S(CurConf(), 16)
While (Len(STRING041) < 3) Do
STRING041 = "0" + STRING041
EndWhile
STRING001 = RTrim(STRING001, Chr(32))
STRING008 = RTrim(STRING008, Chr(32))
STRING018 = STRING003 + STRING018 + "." + STRING041
If (INTEGER003 == 0) INTEGER003 = 115200
STRING029 = Upper(STRING001)
STRING030 = Upper(STRING008)
STRING023 = MegaNum(Len(STRING029) + Asc(Left(Upper(STRING029), 1)))
STRING024 = MegaNum(Len(STRING029) - Len(Strip(Strip(Strip(Strip(Strip(Strip(Upper(STRING029), "A"), "E"), "I"), "O"), "U"), "Y")) + (Left(Len(STRING029), 1) + 1) * 100)
STRING031 = MegaNum(Len(STRING029) - Len(Strip(STRING029, Chr(32))) + Asc(Right(Upper(STRING029), 1)) + 200)
STRING025 = I2S(Len(STRING030) + Asc(Left(Upper(STRING030), 1)), 20)
STRING027 = MegaNum(Len(STRING030) - Len(Strip(Strip(Strip(Strip(Strip(Strip(Upper(STRING030), "A"), "E"), "I"), "O"), "U"), "Y")) + (Left(Len(STRING030), 1) + 1) * 100)
STRING026 = MegaNum(Len(STRING030) - Len(Strip(STRING030, Chr(32))) + Asc(Right(Upper(STRING030), 1)) + 200)
If (InStr(STRING030, "M")) STRING028 = "3"
If (InStr(STRING030, "Z")) STRING028 = STRING028 + "L"
If (InStr(STRING030, "I")) STRING028 = STRING028 + "2"
If (InStr(STRING030, "X")) STRING028 = STRING028 + "5"
STRING033 = Replace(STRING023 + STRING024 + STRING031 + STRING025 + STRING027 + STRING026 + STRING028, "O", "0")
If (BOOLEAN001) Log "--- Bulletin Menu System " + STRING017 + " (Opened) at (" + String(Time()) + ") ---", 1
If (BOOLEAN002) Then
RdUNet PcbNode()
WrUNet PcbNode(), "D", UN_Name(), UN_City(), UN_Name() + " - Bulletin System " + STRING017, ""
Endif
If ((STRING002 <> STRING033) || (BOOLEAN003 == 1)) Then
Cls
Color 5
PrintLn "Bulletin Menu System " + STRING017 + " - (c) Copyright 1994 ArcticSoft (Mario Mueller)"
Color 9
PrintLn "Antarctica Bulletin Board (717) 755-2440 USRobotics Courier 28,800 with HST"
Newline
If (STRING002 == STRING033) Then
STRING032 = STRING001
Goto LABEL001
Endif
STRING032 = "Unregistered Evaluation Copy"
:LABEL001
Color 3
Print "Registered to: "
Color 11
PrintLn STRING032
Newline
Color 3
MPrint "Please wait ... "
Delay 10
If (STRING002 <> STRING033) Then
SPrint Chr(27) + "[0;1;34m * " + Chr(27) + "[0;36mPlease register BMS to remove this ten second Pause ... "
If (BOOLEAN001) Log "- Please register/Only $15.00", 0
Delay 100
SPrintLn
Endif
Endif
STRING022 = ""
If (Exist(STRING004 + "BMSTEXT" + LangExt())) STRING022 = LangExt()
If (Exist(STRING004 + "BMSTEXT" + STRING022) == 0) Then
Newlines 3
Color 9
Print " * "
Color 3
PrintLn "Can not find the BMSTEXT.XXX text file, run BMSETUP.EXE program to create it."
If (BOOLEAN001) Log "- Can not find BMSTEXT.XXX file", 0
Else
BOOLEAN006 = 0
If (((Carrier() >= INTEGER003) && (GrafMode() <> "N")) && (GrafMode() <> "A")) BOOLEAN006 = 1
Color 9
SPrint " * "
Color 3
SPrint "Loading BMSTEXT" + STRING022 + " into Memory ..."
FOpen 1, STRING004 + "BMSTEXT" + STRING022, 2, 0
For INTEGER004 = 1 To 11
FGet 1, TSTRING020(INTEGER004)
Next
FClose 1
SPrintLn
If (BOOLEAN006 == 0) Then
Color 9
SPrint " * "
Color 3
SPrintLn "Graphics Emulation/Baud Rate has disabled Lightbar"
Endif
If (STRING041 <> "LST") Then
Color 9
SPrint " * "
Color 3
SPrint "Switching to Detected (" + String(CurConf()) + ") Conference Number"
Delay 10
SPrintLn
Endif
If (Exist(STRING018) == 0) Then
Newlines 2
PrintLn TSTRING020(1)
Else
INTEGER015 = 0
INTEGER016 = 0
Goto LABEL006
:LABEL002
FClose 1
Color 7
INTEGER018 = STRING038
PROC001(INTEGER018, STRING045, STRING043, STRING044, STRING034)
If ((CurSec() < STRING044) && BOOLEAN001) Then
Log "- Security violation Bulletin/Menu (.." + Right(STRING043, 12) + ")", 0
ElseIf ((Exist(STRING043) == 0) && BOOLEAN001) Then
Log "- Bulletin/Menu (.." + Right(STRING043, 12) + ") does not exist", 0
ElseIf (((STRING034 == Chr(42)) && Exist(STRING043)) && (CurSec() >= STRING044)) Then
Log "- User Attempted to Download a Menu", 0
Else
Cls
Color 31
ClrEol
Print " Downloading Bulletin (" + FUNCTION001(STRING043) + ") on ", Date(), " at ", Time()
Color 3
Newline
Print " * Importing Selected Bulletin to Download Area"
Copy STRING043, STRING006 + FUNCTION001(STRING043)
Newline
Print " * Reading/Removing PCBoard Color Codes from Bulletin"
Delete STRING006 + "DOWNLOAD.$$$"
FOpen 1, STRING006 + FUNCTION001(STRING043), 2, 0
FOpen 2, STRING006 + "DOWNLOAD.$$$", 2, 0
While (Ferr(1) == 0) Do
FGet 1, STRING046
FPutLn 2, StripAtx(STRING046)
EndWhile
FClose 2
FClose 1
Delete STRING006 + FUNCTION001(STRING043)
Delete STRING006 + STRING007 + "." + String(INTEGER009)
Rename STRING006 + "DOWNLOAD.$$$", STRING006 + STRING007 + "." + String(INTEGER009)
Newline
PrintLn " * Preparing to Send Selected Bulletin with Default Protocol"
Newline
Delete "FLIST." + String(PcbNode())
Download STRING006 + STRING007 + "." + String(INTEGER009)
Delete STRING006 + STRING007 + "." + String(INTEGER009)
Inc INTEGER009
Goto LABEL006
:LABEL003
If (Exist(STRING005 + PPEName() + ".FTR")) DispFile STRING005 + PPEName() + ".FTR", 1
INTEGER010 = GetX()
INTEGER011 = GetY()
BOOLEAN005 = 0
If (BOOLEAN006) AnsiPos 1, INTEGER007
STRING038 = ""
STRING037 = ""
STRING021 = ""
While (BOOLEAN005 == 0) Do
If (BOOLEAN006) Then
Gosub LABEL005
Else
Newline
If (BOOLEAN008) Print TSTRING020(11) + Chr(32)
Print "@CLREOL@" + TSTRING020(10)
BOOLEAN007 = 0
While (BOOLEAN007 == 0) Do
STRING037 = Upper(Inkey())
If (((STRING037 >= "0") && (STRING037 <= "9")) && (Len(STRING021) < 2)) Then
STRING038 = ""
Print STRING037
STRING021 = STRING021 + STRING037
Continue
Endif
If ((STRING037 == Chr(8)) && (STRING021 <> "")) Then
STRING038 = ""
STRING021 = Left(STRING021, Len(STRING021) - 1)
BOOLEAN007 = 0
STRING037 = Chr(8) + Chr(32) + Chr(8)
Print STRING037
Continue
Endif
If (STRING037 == Chr(32)) Then
STRING038 = ""
STRING037 = ""
BOOLEAN007 = 1
BOOLEAN005 = 1
If ((GrafMode() == "A") || (GrafMode() == "N")) Then
Newline
Cls
If (Exist(STRING005 + PPEName() + ".HDR")) DispFile STRING005 + PPEName() + ".HDR", 1
Print TSTRING020(8)
Endif
Continue
Endif
If (STRING037 == Chr(13)) Then
STRING038 = STRING021
STRING037 = ""
BOOLEAN007 = 1
FClose 1
If (Len(STRING038) > 0) Goto LABEL009
If (Exist(STRING003 + PPEName() + ".A" + String(PcbNode()))) Then
If (FileInf(STRING003 + PPEName() + ".A" + String(PcbNode()), 4) == 0) Then
Delete STRING003 + PPEName() + ".A" + String(PcbNode())
Newline
StartDisp 2
Goto LABEL011
Endif
INTEGER014 = 0
FOpen 2, STRING003 + PPEName() + ".A" + String(PcbNode()), 2, 0
While (Ferr(2) == 0) Do
FGet 2, STRING039
If (Len(STRING039) <> 0) Inc INTEGER014
EndWhile
FClose 2
FOpen 2, STRING003 + PPEName() + ".A" + String(PcbNode()), 2, 0
For INTEGER012 = 1 To INTEGER014
FGet 2, STRING018
Next
FClose 2
FOpen 2, STRING003 + PPEName() + ".A" + String(PcbNode()), 2, 0
FOpen 3, STRING003 + PPEName() + ".B" + String(PcbNode()), 2, 0
For INTEGER012 = 1 To INTEGER014 - 1
FGet 2, STRING039
FPutLn 3, STRING039
Next
FClose 3
FClose 2
Delete STRING003 + PPEName() + ".A" + String(PcbNode())
Rename STRING003 + PPEName() + ".B" + String(PcbNode()), STRING003 + PPEName() + ".A" + String(PcbNode())
If ((GrafMode() <> "A") && (GrafMode() <> "N")) Then
Goto LABEL007
Goto LABEL004
Endif
Goto LABEL006
:LABEL004
Continue
Endif
Newline
StartDisp 2
Goto LABEL011
Endif
EndWhile
Endif
If (BOOLEAN008) Then
If ((GrafMode() <> "A") && (GrafMode() <> "N")) Then
AnsiPos 1, INTEGER007
Color 7
For INTEGER008 = 1 To INTEGER002
PrintLn "@CLREOL@"
Next
AnsiPos 1, INTEGER007
Endif
Endif
If (Len(STRING038) > 0) Goto LABEL009
EndWhile
Return
End
;------------------------------------------------------------------------------
Procedure PROC001(Integer INTEGER019, Var String STRING047, Var String STRING048, Var String STRING049, Var String STRING050)
FOpen 1, STRING018, 2, 0
For INTEGER017 = 1 To INTEGER019 + 2
FGet 1, STRING042
Next
FClose 1
STRING047 = Left(STRING042, 110)
STRING048 = RTrim(Right(Left(STRING042, 110), 30), Chr(32))
STRING049 = RTrim(Right(Left(STRING042, 113), 3), Chr(32))
STRING050 = Right(STRING042, 1)
EndProc
;------------------------------------------------------------------------------
Function FUNCTION001(String STRING051) String
Integer INTEGER020
String STRING053
INTEGER020 = Len(STRING051)
While (INTEGER020 <> 0) Do
STRING053 = Right(Left(STRING051, INTEGER020), 1)
If (STRING053 == "\") Then
FUNCTION001 = Right(STRING051, Len(STRING051) - INTEGER020)
Break
Endif
Dec INTEGER020
EndWhile
EndFunc
:LABEL005
TSTRING020(0) = ReplaceStr(TSTRING020(2), "@NUM@", "..")
If (Len(STRING037) == 0) Then
If ((INTEGER015 <> 0) && (INTEGER016 <> 0)) Then
AnsiPos INTEGER015, INTEGER016
Endif
AnsiPos GetX() - Len(StripAtx(STRING035)), GetY()
STRING035 = ScrText(GetX(), GetY(), STRING019 + Len(StripAtx(TSTRING020(0))) - 2, 1)
If (RTrim(StripAtx(STRING035), Chr(32)) == "") Then
FClose 1
Goto LABEL007
Endif
Print STRING011 + StripAtx(STRING035)
Color 7
AnsiPos 2, INTEGER007 - 1
Print TSTRING020(7) + ReplaceStr(TSTRING020(5), "@MNUNAME@", RTrim(STRING016, Chr(32)))
Print TSTRING020(7)
AnsiPos 2, INTEGER007 + INTEGER002
Print TSTRING020(7) + TSTRING020(4) + TSTRING020(7)
If (BOOLEAN008) Then
STRING040 = TSTRING020(11)
AnsiPos 78 - Len(StripAtx(STRING040)), INTEGER007 + INTEGER002
Print TSTRING020(7) + STRING040 + TSTRING020(7)
Endif
AnsiPos Len(StripAtx(STRING035)) + 1, INTEGER007
If ((INTEGER015 <> 0) && (INTEGER016 <> 0)) Then
AnsiPos INTEGER015, INTEGER016
INTEGER015 = 0
INTEGER016 = 0
Endif
Endif
STRING038 = ""
STRING037 = ""
BOOLEAN007 = 0
While (BOOLEAN007 == 0) Do
STRING037 = Upper(Inkey())
If (STRING037 == "DOWN") Then
If (GetY() + 1 <> INTEGER007 + INTEGER002) Then
STRING036 = RTrim(ScrText(GetX() - Len(StripAtx(STRING035)), GetY() + 1, STRING019 + Len(StripAtx(TSTRING020(0))) + 1, 0), Chr(32))
If (Len(STRING036) <> 0) Then
AnsiPos GetX() - Len(StripAtx(STRING035)), GetY()
Print STRING035
AnsiPos GetX() - Len(StripAtx(STRING035)), GetY() + 1
STRING035 = ScrText(GetX(), GetY(), STRING019 + Len(StripAtx(TSTRING020(0))) - 2, 1)
Print STRING011 + StripAtx(STRING035)
Endif
Endif
Continue
Endif
If (STRING037 == "RIGHT") Then
If (GetX() + STRING019 < 80) Then
STRING036 = RTrim(ScrText(GetX() + 2, GetY(), STRING019 + Len(StripAtx(TSTRING020(0))) + 1, 0), Chr(32))
If (Len(STRING036) <> 0) Then
AnsiPos GetX() - Len(StripAtx(STRING035)), GetY()
Print STRING035
AnsiPos GetX() + 1, GetY()
STRING035 = ScrText(GetX(), GetY(), STRING019 + Len(StripAtx(TSTRING020(0))) - 2, 1)
Print STRING011 + StripAtx(STRING035)
Endif
Endif
Continue
Endif
If (STRING037 == "LEFT") Then
If (GetX() - Len(StripAtx(STRING035)) * 2 > 1) Then
AnsiPos GetX() - Len(StripAtx(STRING035)), GetY()
Print STRING035
AnsiPos GetX() - Len(StripAtx(STRING035)) * 2 - 1, GetY()
STRING035 = ScrText(GetX(), GetY(), STRING019 + Len(StripAtx(TSTRING020(0))) - 2, 1)
Print STRING011 + StripAtx(STRING035)
Endif
Continue
Endif
If ((STRING037 == "PGUP") || (STRING037 == "UP")) Then
If (GetY() - 1 <> INTEGER007 - 1) Then
AnsiPos GetX() - Len(StripAtx(STRING035)), GetY()
Print STRING035
AnsiPos GetX() - Len(StripAtx(STRING035)), GetY() - 1
STRING035 = ScrText(GetX(), GetY(), STRING019 + Len(StripAtx(TSTRING020(0))) - 2, 1)
Print STRING011 + StripAtx(STRING035)
Endif
Continue
Endif
If (STRING037 == Chr(4)) Then
STRING038 = Right(Left(StripAtx(STRING035), InStr(StripAtx(TSTRING020(2)), "@NUM@") + 1), 2)
If ((Left(STRING038, 1) < "0") || (Left(STRING038, 1) > "9")) STRING038 = Right(STRING038, 1)
INTEGER015 = GetX()
INTEGER016 = GetY()
STRING037 = ""
BOOLEAN007 = 1
BOOLEAN005 = 1
Goto LABEL002
Continue
Endif
If (STRING037 == Chr(13)) Then
STRING038 = Right(Left(StripAtx(STRING035), InStr(StripAtx(TSTRING020(2)), "@NUM@") + 1), 2)
If ((Left(STRING038, 1) < "0") || (Left(STRING038, 1) > "9")) STRING038 = Right(STRING038, 1)
INTEGER015 = GetX()
INTEGER016 = GetY()
STRING037 = ""
BOOLEAN007 = 1
BOOLEAN005 = 1
Continue
Endif
If (STRING037 == Chr(32)) Then
STRING038 = ""
STRING037 = ""
BOOLEAN007 = 1
BOOLEAN005 = 1
Continue
Endif
If (STRING037 == Chr(27)) Then
AnsiPos GetX() - Len(StripAtx(STRING035)), GetY()
Print STRING035
AnsiPos INTEGER010, INTEGER011
If (Exist(STRING003 + PPEName() + ".A" + String(PcbNode()))) Then
If (FileInf(STRING003 + PPEName() + ".A" + String(PcbNode()), 4) == 0) Then
Delete STRING003 + PPEName() + ".A" + String(PcbNode())
Newline
StartDisp 2
Goto LABEL011
Endif
INTEGER014 = 0
FOpen 2, STRING003 + PPEName() + ".A" + String(PcbNode()), 2, 0
While (Ferr(2) == 0) Do
FGet 2, STRING039
If (Len(STRING039) <> 0) Inc INTEGER014
EndWhile
FClose 2
FOpen 2, STRING003 + PPEName() + ".A" + String(PcbNode()), 2, 0
For INTEGER012 = 1 To INTEGER014
FGet 2, STRING018
Next
FClose 2
FOpen 2, STRING003 + PPEName() + ".A" + String(PcbNode()), 2, 0
FOpen 3, STRING003 + PPEName() + ".B" + String(PcbNode()), 2, 0
For INTEGER012 = 1 To INTEGER014 - 1
FGet 2, STRING039
FPutLn 3, STRING039
Next
FClose 3
FClose 2
Delete STRING003 + PPEName() + ".A" + String(PcbNode())
Rename STRING003 + PPEName() + ".B" + String(PcbNode()), STRING003 + PPEName() + ".A" + String(PcbNode())
AnsiPos 1, INTEGER007
Color 7
For INTEGER008 = 1 To INTEGER002
PrintLn "@CLREOL@"
Next
AnsiPos 1, INTEGER007
Goto LABEL007
Continue
Endif
Newline
StartDisp 2
Goto LABEL011
Endif
EndWhile
Return
:LABEL006
Color 7
Cls
If (Exist(STRING005 + PPEName() + ".HDR")) DispFile STRING005 + PPEName() + ".HDR", 1 + 2
If ((GrafMode() <> "A") && (GrafMode() <> "N")) Then
Print TSTRING020(6)
Else
Print TSTRING020(8)
Endif
INTEGER007 = GetY()
Endif
:LABEL007
StartDisp 1
If ((GrafMode() <> "A") && (GrafMode() <> "N")) Then
AnsiPos 1, INTEGER007 - 1
Print TSTRING020(6)
If ((GrafMode() <> "A") && (GrafMode() <> "N")) Then
AnsiPos 1, INTEGER007
Color 7
For INTEGER008 = 1 To INTEGER002
PrintLn "@CLREOL@"
Next
AnsiPos 1, INTEGER007
Endif
Endif
INTEGER004 = 0
INTEGER005 = 0
INTEGER006 = 0
FOpen 1, STRING018, 2, 0
FGet 1, STRING016
FGet 1, INTEGER001
If (INTEGER001 == 1) STRING019 = 76
If (INTEGER001 == 2) STRING019 = 36
If (INTEGER001 == 3) STRING019 = 23
While (Ferr(1) == 0) Do
Inc INTEGER004
FGet 1, STRING015
INTEGER013 = 2
If (((Len(STRING015) == 0) && (INTEGER005 == 0)) && (INTEGER004 == 1)) Then
Newline
FClose 1
Goto LABEL007
Endif
If (Len(STRING015) == 0) Break
STRING012 = Left(STRING015, 80)
STRING013 = RTrim(Right(Left(STRING015, 110), 30), Chr(32))
STRING014 = RTrim(Right(Left(STRING015, 113), 3), Chr(32))
STRING034 = Right(STRING015, 1)
If (Len(STRING013) <= 12) STRING013 = STRING003 + STRING013
If ((STRING034 == Chr(42)) && Exist(STRING013)) INTEGER013 = 3
TSTRING020(0) = ReplaceStr(TSTRING020(INTEGER013), "@NUM@", INTEGER004)
STRING012 = Left(STRING012, STRING019 - Len(StripAtx(ReplaceStr(TSTRING020(2), "@NUM@", "."))) + Len(STRING012) - Len(StripAtx(STRING012)))
Print Space(Len(StripAtx(ReplaceStr(TSTRING020(INTEGER013), "@NUM@", ".."))) - Len(StripAtx(TSTRING020(0)))) + TSTRING020(0)
If (((CurSec() < STRING014) || (Exist(STRING013) == 0)) && (INTEGER013 <> 3)) Then
Print Chr(32) + STRING010 + StripAtx(STRING012)
Else
Print Chr(32) + STRING009 + STRING012
Endif
Print Space(STRING019 - Len(StripAtx(TSTRING020(0))) - Len(StripAtx(STRING012)) + Len(INTEGER004))
If (GetX() >= 78) Then
Newline
Inc INTEGER005
Endif
If (INTEGER005 == INTEGER002) Then
Inc INTEGER006
If ((GrafMode() <> "A") && (GrafMode() <> "N")) Then
Print TSTRING020(6)
Goto LABEL008
Endif
Print TSTRING020(8)
:LABEL008
BOOLEAN008 = 1
Gosub LABEL003
INTEGER005 = 0
Endif
EndWhile
FClose 1
If (INTEGER005 <> INTEGER002) Then
For INTEGER008 = 1 To INTEGER002 - INTEGER005
Newline
Next
Endif
If (GetX() <> 1) Newline
If ((GrafMode() <> "A") && (GrafMode() <> "N")) Then
Print TSTRING020(6)
Else
Print TSTRING020(8)
Endif
BOOLEAN008 = 0
Gosub LABEL003
Newline
If (BOOLEAN006) AnsiPos 1, INTEGER007
Goto LABEL007
:LABEL009
FClose 1
Color 7
INTEGER018 = STRING038
PROC001(INTEGER018, STRING045, STRING043, STRING044, STRING034)
If (Len(STRING043) <= 12) STRING043 = STRING003 + STRING043
If ((CurSec() < STRING044) && BOOLEAN001) Then
Log "- Security violation Bulletin/Menu (.." + Right(STRING043, 12) + ")", 0
Goto LABEL007
Endif
If ((Exist(STRING043) == 0) && BOOLEAN001) Then
Log "- Bulletin/Menu (.." + Right(STRING043, 12) + ") does not exist", 0
Goto LABEL007
Endif
If (((STRING034 == Chr(42)) && Exist(STRING043)) && (CurSec() >= STRING044)) Then
INTEGER015 = 0
INTEGER016 = 0
FAppend 1, STRING003 + PPEName() + ".A" + String(PcbNode()), 2, 0
FPutLn 1, STRING018
FClose 1
If ((GrafMode() <> "A") && (GrafMode() <> "N")) Then
AnsiPos 1, INTEGER007
Color 7
For INTEGER008 = 1 To INTEGER002
PrintLn "@CLREOL@"
Next
AnsiPos 1, INTEGER007
Endif
STRING018 = STRING043
STRING038 = ""
If (BOOLEAN001) Log "- User entered menu (.." + Right(STRING043, 12) + ")", 0
If ((GrafMode() <> "A") && (GrafMode() <> "N")) Then
Goto LABEL007
Goto LABEL010
Endif
Goto LABEL006
Endif
:LABEL010
If (Exist(STRING043) && (CurSec() >= STRING044)) Then
Cls
StartDisp 2
If (BOOLEAN001) Log "- User viewed bulletin (.." + Right(STRING043, 12) + ")", 0
DispFile STRING043, 1 + 4 + 2
Newline
Wait
StartDisp 1
Endif
Goto LABEL006
Endif
Endif
Endif
:LABEL011
If (BOOLEAN001) Log "--- Bulletin Menu System " + STRING017 + " (Closed) at (" + String(Time()) + ") ---", 1
If (BOOLEAN004) Then
Color 7
Cls
Endif
End
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 2 End
; 6 Cls
; 1 ClrEol
; 1 Wait
; 28 Color
; 153 Goto
; 162 Let
; 36 Print
; 12 PrintLn
; 132 If
; 4 DispFile
; 15 FOpen
; 1 FAppend
; 21 FClose
; 26 FGet
; 4 FPutLn
; 7 StartDisp
; 9 Delete
; 11 Log
; 3 Gosub
; 2 Return
; 3 Delay
; 6 Inc
; 1 Dec
; 19 Newline
; 2 Newlines
; 1 RdUNet
; 1 WrUNet
; 28 AnsiPos
; 6 SPrint
; 4 SPrintLn
; 1 MPrint
; 3 Rename
; 1 FSeek
; 3 FRead
; 1 Copy
; 1 Download
; 1 EndProc
; 1 EndFunc
;
;
; ■ Functions used :
;
; 4 *
; 226 +
; 40 -
; 63 ==
; 39 <>
; 19 <
; 14 <=
; 5 >
; 28 >=
; 84 !
; 51 &&
; 17 ||
; 70 Len(
; 10 Upper()
; 19 Left()
; 20 Right()
; 2 Space()
; 4 Ferr()
; 44 Chr()
; 4 Asc()
; 6 InStr()
; 24 RTrim()
; 1 Date()
; 3 Time()
; 38 StripAtx()
; 1 Replace()
; 14 Strip()
; 2 Inkey()
; 29 String()
; 3 CurConf()
; 8 PPEPath()
; 24 PcbNode()
; 2 UN_Name()
; 1 UN_City()
; 6 CurSec()
; 17 Exist()
; 2 I2S()
; 1 Carrier()
; 2 LangExt()
; 24 GetX()
; 23 GetY()
; 23 GrafMode()
; 2 FileInf()
; 30 PPEName()
; 7 ScrText()
; 5 ReplaceStr()
; 5 MegaNum()
;
;------------------------------------------------------------------------------
;
; Analysis flags : M
;
; 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
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 11 For/Next
; 9 While/EndWhile
; 64 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------