home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carsten's PPE Collection
/
Carstens_PPE_Collection_2007.zip
/
S
/
SAC-WHO6.ZIP
/
WHO.PPE
(
.txt
)
< prev
Wrap
PCBoard Programming Language Executable
|
1995-10-29
|
17KB
|
788 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
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
Integer INTEGER011
String STRING001
String STRING002
String STRING003
String STRING004
String TSTRING005(10)
String STRING006
String TSTRING007(9)
String TSTRING008(8)
String STRING009
String STRING010
String STRING011
String STRING012
String STRING013
String STRING014
String STRING015
String STRING016
String STRING017
String STRING018
String STRING019
String STRING020
String STRING021
String STRING022
String STRING023
String STRING024
String STRING025
String STRING026
String STRING027
String STRING028
String STRING029
BigStr TBIGSTR001(10)
BigStr TBIGSTR002(10)
BigStr TBIGSTR003(10)
BigStr TBIGSTR004(200)
Declare Procedure PROC001(String STRING030)
Declare Procedure PROC002()
;------------------------------------------------------------------------------
If (AnsiOn()) Goto LABEL001
Newline
PrintLn "SAC-WHO CAN NOT RUN WiTHOUT ANSi!"
Beep
Newline
Wait
Stop
:LABEL001
Cls
If (Exist(PPEPath() + "SAC-WHO.CF" + String(PcbNode()))) Goto LABEL002
Newline
PrintLn "@X06FiLE SAC-WHO.CF" + String(PcbNode()) + " NOT FOUND, WHERE iS iT..???"
Newline
Beep
Wait
Stop
:LABEL002
StartDisp 1
STRING025 = PPEPath() + "OLM" + String(PcbNode()) + ".$$$"
If (Exist(STRING025)) Delete STRING025
INTEGER001 = FileInf(PPEPath() + "WHO.PPE", 2) / 1000
RdUNet PcbNode()
WrUNet PcbNode(), "D", UN_Name(), UN_City(), UN_Name() + " - SAC-WHO", ""
FOpen 1, PPEPath() + "SAC-WHO.CF" + String(PcbNode()), 0, 0
FGet 1, INTEGER002
If (!InStr("123456789", INTEGER002)) INTEGER002 = 3
If (INTEGER002 > MaxNode()) INTEGER002 = MaxNode()
If (INTEGER002 < 2) INTEGER002 = 2
If (INTEGER002 > 9) INTEGER002 = 9
BOOLEAN001 = 0
If (INTEGER002 > 5) BOOLEAN001 = 1
FGet 1, STRING002
If (Len(StripAtx(STRING002)) > 31) STRING002 = Left(StripAtx(STRING002), 31)
If (INTEGER001 <> 35) Gosub LABEL026
INTEGER001 = Len(StripAtx(STRING002)) / 2
STRING023 = STRING023 + Left("───────────────", 15 - INTEGER001)
STRING023 = STRING023 + " " + STRING002 + " @X08"
INTEGER001 = Len(StripAtx(STRING023))
STRING023 = STRING023 + Left("────────────────", 35 - INTEGER001)
STRING023 = "@X0F┌───@X07─@X0F─@X07── ─@X08── ────────" + STRING023 + "───@X0BT@X03i@X08ME: @X03" + String(Time()) + "@X07@X0F──┐"
INTEGER001 = 1
:LABEL003
If (INTEGER001 > INTEGER002) Goto LABEL004
FGet 1, TSTRING007(INTEGER001)
FGet 1, TSTRING008(INTEGER001)
Inc INTEGER001
Goto LABEL003
:LABEL004
FClose 1
If (ReadLine(PCBDat(), 90) == "0") Goto LABEL015
PrintLn "H" + STRING023
PrintLn "@X07│@X08N@X03d@X0B#@X07┬@X0F─@X07─ @X0F─@X07─ @X08Na@X03M@X0Be/a@X03Li@X08aS @X07─ ─@X0F─ @X07─@X0F─@X07┬ @X08a@X03C@X0BTi@X03o@X08n @X0F───@X07─@X0F─@X07── ─@X08── ─ ──────────────────────@X07┤"
PrintLn " @X08──@X07─@X0F┌─@X07─@X08─ ───────────────── ─@X07─@X0F─┐@X08─ ──@X07─ ──@X0F─@X07─@X0F─────@X07─@X0F─@X07── ─@X08── @X07─ ──@X0F─@X07─@X0F───@X07─@X0F─@X07── ─@X08── ─"
INTEGER003 = 4
INTEGER001 = 1
:LABEL005
If (INTEGER001 == INTEGER002) Goto LABEL006
Gosub LABEL011
Inc INTEGER001
If (BOOLEAN001) Goto LABEL005
AnsiPos 1, INTEGER003 - 1
Print "@X07│@X08──@X07─@X0F┌─@X07─@X0F───@X07─@X0F─@X07── ─@X08── @X07─ ──@X0F─@X07─@X0F───@X07──@X0F──┘@X08─ ──@X07─ ──@X0F─@X07─@X0F─────@X07─@X0F─@X07── ─@X08── @X07─ ──@X0F─@X07─@X0F───@X07─@X0F─@X07── ─@X08── ─│"
Goto LABEL005
:LABEL006
Gosub LABEL011
If (!BOOLEAN001) Dec INTEGER003
AnsiPos 1, INTEGER003
PrintLn "@X07│ │ @X0F└─┴───@X07─@X0F─@X07── ─@X08── @X07─ ──@X0F─@X07─@X0F───@X07──@X0F──┘@X08─ ──@X07─ ──@X0F─@X07─@X0F─────@X07─@X0F─@X07── ─@X08── @X07─ ──@X0F─@X07─@X0F───@X07─@X0F─@X07── ─@X08── ─@X07│"
STRING004 = GetY()
PrintLn "@X08 ├@X0F[ ] @X07NoDE # To @X0FVIEWC@X03▄▀@X01▄███▀@X03▄▀ @X08v0.6b @X03▄▄▄"
PrintLn "@X07│ ├@X08[@X0BB@X08] @X07to @X0FENTER @X07Broadcast@X08-@X0FMSG@X07! @X03▄▀▀▀▄ ▄▄ ▄▄▄█ @X01███ @X03█ ▄▄▄ ▄▀▀@X09▄▄▄@X07│"
PrintLn "@X0F│ @X07└@X08[@X0BE@X03SC@X08] @X07To @X0FEXIT @X03▄▀@X01▄███ @X03█▄▀@X01▄▄@X03▀▌@X09▄▄▄@X01▐██ @X03█▄ ▄▀@X01▄▄▄@X03▀@X09▄@X19▓@X09▀▀@X19▓▒░@X07"
PrintLn "C@X03▀▄@X01▀@X19░░@X01██ @X03▀@X01▄▓▓▓▄@X03▐@X09▐@X19▓▒@X01▐@X19░@X01█ ▄▄@X03▀@X09▄@X19▓▒░@X01██▄ ▄@X19░@X01▀"
PrintLn "@X07│C@X03█ @X19▓░@X01█▄█▓█▓▓▓▄ @X19▒@X01▌@X19▒░░@X01█▀██@X09▐@X19▓@X09▄ @X19░@X01██ ▄@X19░@X01▀@X03▄@X08R"
PrintLn "@X0F└─@X08 @X04M@X0CO@X0EN@X0FS@X0ET@X0CE@X04R@X08/@X0BS@X03A@X08C @X0F─@X07─@X0F─@X07── ─@X08── ─ ──────────── @X03█ @X09█@X19▓▒░@X01▀ ██▓█@X19░░@X09▐@X19▓▒@X01▀@X07─ @X01▄@X19░@X01▌@X09█@X19▓▒░@X01█▀ ▀▀ @X03█@X08V"
PrintLn "C@X03▀@X0B▄@X09▀▀▀ @X0B▄▀▄▄@X01▀█@X19░@X01▀ @X09██ ▄▄@X19▓▒@X01▀ @X09▀▀@X01▀@X0B▄ @X01▄▄▄ @X03█"
PrintLn "C@X0B▀▀▀▀ ▀▄▄▀▀▄▄▀▄▄▄▄▀▀▀▀▀ ▀▄▄▄▀@X07"
INTEGER005 = GetY()
:LABEL007
INTEGER009 = 5
INTEGER010 = STRING004
AnsiPos INTEGER009, INTEGER010
:LABEL008
INTEGER003 = 4
INTEGER001 = 1
:LABEL009
STRING006 = Inkey()
If (STRING006 == "") Then
If (INTEGER001 > INTEGER002) Goto LABEL008
Gosub LABEL011
Inc INTEGER001
Goto LABEL009
Endif
If (Upper(STRING006) == "B") Goto LABEL010
If ((STRING006 == Chr(27)) || (STRING006 == Chr(13))) Goto LABEL014
If (!InStr("123456789", STRING006)) Goto LABEL009
If (STRING006 > INTEGER002) Goto LABEL009
RdUNet STRING006
If (UN_Name() == "") Goto LABEL009
AnsiPos 5, STRING004
Print STRING006
Goto LABEL016
:LABEL010
Goto LABEL035
:LABEL011
RdUNet INTEGER001
TSTRING005(INTEGER001) = ""
If (!(UN_Name() == "")) TSTRING005(INTEGER001) = "@X09" + UN_Name()
Select Case (UN_Stat())
Case ""
TSTRING005(INTEGER001) = "@X08Not Available"
Case " ", "V"
TSTRING005(INTEGER001) = "@X0FNo CALLER THiS NoDE"
Case Else
If (UN_Stat() == "Y") Then
TSTRING005(INTEGER001) = "@X08NoDE OFFLiNE"
End Select
TBIGSTR001(INTEGER001) = Space(43)
Goto LABEL012
Endif
TBIGSTR001(INTEGER001) = "@X07UNKNoWN ACTiViTY"
If (PcbNode() == INTEGER001) Then
TBIGSTR001(INTEGER001) = "@X07THiS iS YoUR NoDE ..!!! "
If (Exist(STRING025)) PROC002()
Else
Select Case (UN_Stat())
Case "A"
TBIGSTR001(INTEGER001) = "@X07AVAiLABLE FoR CHAT"
Case "U", "Q"
TBIGSTR001(INTEGER001) = "@X04UNAVAiLABLE FoR CHAT"
Case "O"
TBIGSTR001(INTEGER001) = "@X07LoGGiNG iN"
Case "S"
TBIGSTR001(INTEGER001) = "@X07ANSWERiNG AN iNFoFoRM"
Case "B"
TBIGSTR001(INTEGER001) = "@X07oUT To oPERATiNG SYSTEM"
Case "D"
STRING003 = Right(String(UN_Oper()), Len(String(UN_Oper())) - Len(UN_Name()) + 3)
TBIGSTR001(INTEGER001) = "@X07INSiDE DOOR: " + STRING003
If (Len(TBIGSTR001(INTEGER001)) > 43) TBIGSTR001(INTEGER001) = "@X07USER iN A DooR"
Case "C"
TBIGSTR001(INTEGER001) = "@X07ChATTiNG WiTH SYSoP"
Case "G"
TBIGSTR001(INTEGER001) = "@X07CHATTiNG WiTH GRoUP"
Case "M"
TBIGSTR001(INTEGER001) = "@X07RCVD BRoADCAST MSG"
Case "E"
STRING003 = RTrim(LTrim(Left(UN_Oper(), InStr(UN_Oper(), " ") - 1), "("), ")")
STRING003 = Right(UN_Oper(), Len(UN_Oper()) - Len(STRING003) + 6)
If (Left(STRING003, 1) == "@") Then
STRING003 = "MACRO"
Endif
TBIGSTR001(INTEGER001) = "@X07ENTER MSG To: " + STRING003
If (Len(TBIGSTR001(INTEGER001)) > 43) TBIGSTR001(INTEGER001) = "@X07ENTERiNG MESSAGE"
Case "P"
TBIGSTR001(INTEGER001) = "@X07PAGiNG SYSoP"
Case "W"
TBIGSTR001(INTEGER001) = "@X07NoDE DRoPPED To oPERATiNG SYSTEM"
Case "R"
TBIGSTR001(INTEGER001) = "@X07RECYCLiNG NoDE"
Case "L"
TBIGSTR001(INTEGER001) = "@X07AUToLoGoFF SEQUENCE"
Case "X"
TBIGSTR001(INTEGER001) = "@X07DRoP To DoS PENDiNG"
Case "F"
STRING003 = LTrim(LTrim(LTrim(LTrim(UN_Oper(), "F"), " "), "V"), " ")
TBIGSTR001(INTEGER001) = "@X07FiLE ViEWiNG: " + Left(STRING003, 12)
If (Len(TBIGSTR001(INTEGER001)) > 43) TBIGSTR001(INTEGER001) = "@X07ViEWiNG A FiLE"
Case "N"
TBIGSTR001(INTEGER001) = "@X07RUNNiNG EVENT"
Case "Z"
TBIGSTR001(INTEGER001) = "@X04NoDE iS OFFLiNE"
Case "T"
STRING001 = Left(UN_Oper(), 3)
If (STRING001 == "(U)") Then
If (Left(UN_Oper(), 15) == "(U) ... (Z) ...") Then
TBIGSTR001(INTEGER001) = "@X0APUMPiNG FiLES WiTH Z-MoDEM"
Goto LABEL012
Endif
If (Left(UN_Oper(), 15) == "(U) ... (H) ...") Then
TBIGSTR001(INTEGER001) = "@X0APUMPiNG FiLES WiTH HiGH SPEED LiNK"
Goto LABEL012
Endif
TBIGSTR001(INTEGER001) = "@X0APuMPiNG FiLE/s"
Goto LABEL012
Endif
If (STRING001 == "(D)") Then
STRING003 = LTrim(LTrim(LTrim(LTrim(UN_Oper(), "("), "D"), ")"), " ")
STRING001 = Left(STRING003, InStr(STRING003, " ") - 1)
STRING003 = Right(UN_Oper(), Len(UN_Oper()) - Len(STRING001) + 5)
If (Left(STRING003, 2) == "(Z") Then
TBIGSTR001(INTEGER001) = "@X0CLEECHiNG FiLES WiTH Z-MoDEM"
Goto LABEL012
Endif
If (Left(STRING003, 2) == "(H") Then
TBIGSTR001(INTEGER001) = "@X0CLEECHiNG FiLES WiTH HiGH SPEED LiNK"
Goto LABEL012
Endif
TBIGSTR001(INTEGER001) = "@X0CLEECHiNG FiLE/s"
Goto LABEL012
Endif
TBIGSTR001(INTEGER001) = "@X07START FiLE TRANSFER"
Endif
End Select
:LABEL012
TBIGSTR002(INTEGER001) = "@X0F│ @X07" + String(INTEGER001) + "@X08@POS:5@@X0F│@X08─@X07┐" + Space(12 - Len(StripAtx(TSTRING005(INTEGER001))) / 2) + TSTRING005(INTEGER001) + "@POS:33@@X0F│ " + TBIGSTR001(INTEGER001) + "@POS:79@@X08│"
If (TBIGSTR002(INTEGER001) == TBIGSTR003(INTEGER001)) Goto LABEL013
TBIGSTR003(INTEGER001) = TBIGSTR002(INTEGER001)
AnsiPos 1, INTEGER003
Print TBIGSTR002(INTEGER001)
:LABEL013
Inc INTEGER003
If (!BOOLEAN001) Inc INTEGER003
If (INTEGER004 == Time()) Return
INTEGER004 = Time()
AnsiPos 68, 1
Print "@X03" + String(Time())
Color 7
AnsiPos INTEGER009, INTEGER010
Return
:LABEL014
Cls
StartDisp 2
PrintLn "@X08Thank you for using SAC Products."
Newline
End
:LABEL015
Newline
PrintLn "@X0F■ @X09SoRRY! No ACTioN oN oTHER NoDEs!! @X0F■"
Newline
Goto LABEL014
:LABEL016
If (Exist(TSTRING007(STRING006))) Then
AnsiPos 1, INTEGER005
SaveScrn
Cls
STRING016 = PPEPath() + "DSZN" + STRING006 + ".$$$"
FOpen 1, TSTRING007(STRING006), 0, 0
FSeek 1, 9, 0
FRead 1, STRING010, 2
FSeek 1, 2, 1
FRead 1, STRING011, 5
FRead 1, STRING012, 5
FSeek 1, 33, 1
FRead 1, STRING013, 5
FClose 1
If (Upper(STRING012) == "LOCAL") Goto LABEL017
If (STRING010 == "-1") Then
STRING010 = "E"
Else
Cls
Newline
PrintLn "@X06THERE'S SOMETHiNG WRONG WiTH THE CONFiG! PLEASE iNFORM SYSOP..!!!"
Newline
Beep
Wait
End
Endif
:LABEL017
STRING010 = ""
Endif
If (STRING011 == "11520") STRING011 = "115200"
If (STRING012 == "11520") STRING012 = "115200"
If ((STRING011 == "") || (STRING011 == Space(5))) Then
Goto LABEL018
Endif
STRING014 = RTrim(STRING012, " ") + STRING010 + "/" + RTrim(STRING011, " ")
Goto LABEL018
STRING014 = "UNKNoWN"
:LABEL018
RdUNet STRING006
GetAltUser U_RecNum(UN_Name())
PrintLn " @X08╞───────────────────────────────═╗"
PrintLn " @X08│ @X07NAME@X08: @X0F" + String(UN_Name()) + "@POS:35@@X08│"
PrintLn " @X08│ @X07CiTY@X08: @X0F" + String(UN_City()) + "@POS:35@@X08│"
PrintLn " @X08╞────────────────────────────────╜"
PrintLn " @X08│ @X07MODEM CONNECT@X08: @X09" + STRING014 + "@POS:35@@X08│"
PrintLn " @X08│ @X07ONELiNE SiNCE@X08: @X09" + STRING013 + "@POS:35@@X08│"
PrintLn " @X08│────────────────────────────────│"
PrintLn " @X08│ @X07USER LAST SCANNED@X08: @X09" + String(U_LDir()) + "@POS:35@@X08│"
PrintLn " @X08│ @X07USER LAST DATE ON@X08: @X09" + String(U_LDate()) + "@POS:35@@X08│"
PrintLn " @X08│ @X07USER LAST TiME ON@X08: @X09" + String(U_LTime()) + "@POS:35@@X08│"
PrintLn " @X08│ @X07TOTAL CALLS TO SYSTEM@X08: @X09" + String(U_Logons()) + "@POS:35@@X08│"
PrintLn " @X08│────────────────────────────────│"
PrintLn " @X08│ @X07FiLES UPPED@X08: @X09" + String(U_Ful()) + "@POS:35@@X08│"
PrintLn " @X08│ @X07BYTES UPPED@X08: @X09" + String(U_Bul()) + "@POS:35@@X08│"
PrintLn " @X08│ @X07FiLES DOWNED@X08: @X09" + String(U_Fdl()) + "@POS:35@@X08│"
PrintLn " @X08│ @X07BYTES DOWNED@X08: @X09" + String(U_Bdl()) + "@POS:35@@X08│"
STRING015 = U_BdlDay()
If (STRING015 < 1) STRING015 = 0
PrintLn " @X08│ @X07BYTES DOWNED TODAY@X08: @X09" + STRING015 + "@POS:35@@X08│"
PrintLn " @X08╘───────────────────────────────═╛"
Print "8H"
If (UN_Stat() == "T") Goto LABEL019
PrintLn "@X08╞───────────────────────────────────────═╗"
PrintLn "C@X08│ @X07NO FiLE-TRANSFER! @X08│"
Print "C@X08╘────────────────────────────────────────╛1H"
Goto LABEL034
:LABEL019
PrintLn "@X08╞───────────────────────────────────────═╗"
PrintLn "C@X08│ @X0FDOiNG FiLE-TRANSFER! @X08│"
PrintLn "C@X08╘────────────────────────────────────────╛"
PrintLn "C@X08╞───────────────────────────────────────═╗"
INTEGER008 = 5
STRING020 = 1
If (Exist(TSTRING008(STRING006))) Then
If (FileInf(TSTRING008(STRING006), 4) == 0) Goto LABEL024
Copy TSTRING008(STRING006), STRING016
FOpen 1, STRING016, 2, 0
:LABEL020
FGet 1, STRING018
If (Ferr(1)) Goto LABEL023
Inc INTEGER008
If (INTEGER008 == 22) Gosub LABEL032
STRING017 = Left(STRING018, 1)
If (STRING017 == Chr(32)) Goto LABEL020
STRING019 = "■■■■■■"
If ((STRING017 == "H") || (STRING017 == "Z")) Then
STRING019 = "@X02PUMPED"
Goto LABEL021
Endif
If ((STRING017 == "h") || (STRING017 == "z")) Then
STRING019 = "@X04SENDED"
Goto LABEL021
Endif
If (STRING017 == "V") Then
STRING019 = "@X0FVERiFY"
Goto LABEL021
Endif
If (Upper(STRING017) == "E") Then
STRING019 = "@X0CERRoR!"
Goto LABEL021
Endif
If (Upper(STRING017) == "L") Then
STRING019 = "@X04 LoST "
Endif
:LABEL021
STRING018 = Right(STRING018, Len(STRING018) - 1)
STRING018 = LTrim(STRING018, Chr(32))
Gosub LABEL022
STRING021 = STRING017 / 1024
STRING017 = Left(STRING018, InStr(STRING018, ":") - 2)
STRING018 = Right(STRING018, Len(STRING018) - Len(STRING017))
STRING017 = Left(STRING018, InStr(STRING018, Chr(32)) - 1)
If (STRING021 > 999) STRING021 = Left(STRING021, Len(STRING021) - 3) + "," + Right(STRING021, 3)
STRING021 = Replace(STRING021, "0", "O")
STRING021 = Right("·········@X07 " + STRING021, 14)
STRING022 = "@X08│" + Space(3 - Len(STRING020)) + "[@X07" + STRING020 + "@X08] [" + STRING019 + "@X08] "
PROC001(STRING017)
TBIGSTR004(STRING020) = STRING024
STRING024 = Replace(Replace(Replace(STRING024, "I", "i"), "X", "x"), "O", "o")
STRING024 = "@X0F" + Left(STRING024 + " @X08·············", 17)
STRING022 = STRING022 + STRING024 + STRING021 + "k @X08│"
PrintLn "C" + STRING022
Inc STRING020
Goto LABEL020
:LABEL022
STRING017 = Left(STRING018, InStr(STRING018, Chr(32)) - 1)
STRING018 = Right(STRING018, Len(STRING018) - Len(STRING017) + 1)
STRING017 = LTrim(STRING017, Chr(32))
Return
:LABEL023
FClose 1
Delete STRING016
Endif
:LABEL024
STRING009 = TSTRING007(STRING006)
:LABEL025
If (InStr(STRING009, "\") <> 0) Then
STRING009 = Right(STRING009, Len(STRING009) - InStr(STRING009, "\"))
Goto LABEL025
:LABEL026
FOpen 2, PPEPath() + "WHO.PPE", 2, 0
FSeek 2, 40, 0
FWrite 2, Chr(255), 1
FClose 2
Return
Endif
STRING009 = Left(TSTRING007(STRING006), Len(TSTRING007(STRING006)) - Len(STRING009)) + "FLIST." + STRING006
If (Exist(STRING009)) Then
INTEGER006 = STRING020
FOpen 2, STRING009, 0, 0
:LABEL027
FRead 2, STRING010, 66
If (Ferr(2)) Goto LABEL031
Inc INTEGER008
If (INTEGER008 == 22) Gosub LABEL032
STRING010 = RTrim(STRING010, Chr(32))
FRead 2, STRING011, 63
PROC001(STRING010)
INTEGER007 = 1
STRING019 = "@X042 PUMP"
:LABEL028
If (STRING024 == TBIGSTR004(INTEGER007)) Goto LABEL027
Inc INTEGER007
If (!(INTEGER007 > INTEGER006)) Goto LABEL028
STRING019 = "@X042 SEND"
If (Exist(STRING010)) Goto LABEL029
STRING021 = "■"
Goto LABEL030
:LABEL029
STRING017 = FileInf(STRING010, 4)
STRING021 = STRING017 / 1024
If (STRING021 > 999) STRING021 = Left(STRING021, Len(STRING021) - 3) + "," + Right(STRING021, 3)
STRING021 = Replace(STRING021, "0", "O")
:LABEL030
STRING021 = Right("·········@X07 " + STRING021, 14)
STRING022 = "@X08│" + Space(3 - Len(STRING020)) + "[@X07" + STRING020 + "@X08] [" + STRING019 + "@X08] "
STRING024 = Replace(Replace(Replace(STRING024, "I", "i"), "X", "x"), "O", "o")
STRING024 = "@X0F" + Left(STRING024 + " @X08·············", 17)
STRING022 = STRING022 + STRING024 + STRING021 + "k @X08│"
PrintLn "C" + STRING022
Inc STRING020
Goto LABEL027
:LABEL031
FClose 2
Endif
AnsiPos 38, GetY()
PrintLn "@X08╘───────────────────────────────────────═╛"
Newline
If (!(STRING020 > 14)) Print "1H"
Goto LABEL034
:LABEL032
Print "C@X08│ @X07PRESS ENTER TO CONTiNUE @X08│D"
:LABEL033
If (Inkey() == "") Goto LABEL033
INTEGER008 = 1
Return
:LABEL034
Wait
RestScrn
AnsiPos 5, STRING004
Print " " + Chr(8)
Goto LABEL009
End
;------------------------------------------------------------------------------
Procedure PROC001(String STRING030)
While ((InStr(STRING030, "/") <> 0) || (InStr(STRING030, "\") <> 0)) Do
STRING030 = Right(STRING030, Len(STRING030) - InStr(STRING030, "/"))
STRING030 = Right(STRING030, Len(STRING030) - InStr(STRING030, "\"))
EndWhile
STRING024 = STRING030
EndProc
;------------------------------------------------------------------------------
Procedure PROC002()
FOpen 1, STRING025, 2, 0
FGet 1, STRING026
FClose 1
Delete STRING025
AnsiPos 2, STRING004 + 6
STRING027 = RTrim(Left(STRING026, 3), Chr(32))
Print "@X0F├@X0BR@X03e@X07cieved @X03a @X0BB@X03r@X07oadcast@X08-@X0BM@X03S@X07G @X0Bf@X03r@X07om @X0BN@X03d@X07# @X0B" + STRING027 + "@X07" + Left("───", 3 - Len(STRING027)) + "┤"
STRING026 = Right(STRING026, Len(STRING026) - 3)
AnsiPos 2, STRING004 + 7
Print "@X07└@X08@X0F" + STRING026 + "@X08" + Left("───────────────────────────────────", 35 - Len(StripAtx(STRING026))) + "┘@X07"
Beep
EndProc
:LABEL035
AnsiPos 2, STRING004 + 3
Print "@X0F┌@X0BE@X03n@X07ter @X0BB@X03r@X07oadcast@X08-@X0BM@X03S@X07G @X03t@X07o @X0BN@X03d@X07# @X08[ ]@X07───────┐"
AnsiPos 2, STRING004 + 4
Print "@X07├@X08C┤"
:LABEL036
INTEGER009 = 31
INTEGER010 = STRING004 + 3
AnsiPos INTEGER009, INTEGER010
Print "@X0F·"
Backup 1
:LABEL037
INTEGER003 = 4
INTEGER001 = 1
:LABEL038
STRING028 = Inkey()
If (STRING028 == "") Then
If (INTEGER001 > INTEGER002) Goto LABEL037
Gosub LABEL011
Inc INTEGER001
Goto LABEL038
Endif
If ((STRING028 == Chr(27)) || (STRING028 == Chr(13))) Goto LABEL051
If (!InStr("123456789", STRING028)) Goto LABEL038
If (STRING028 > INTEGER002) Goto LABEL038
Print STRING028
If (STRING028 == String(PcbNode())) Goto LABEL046
RdUNet STRING028
If (UN_Name() == "") Goto LABEL047
If ((UN_Stat() == "A") || (Right(UN_Oper(), 7) == "SAC-WHO")) Goto LABEL039
Goto LABEL047
:LABEL039
STRING026 = ""
INTEGER011 = 0
INTEGER009 = 4
INTEGER010 = STRING004 + 4
AnsiPos INTEGER009, INTEGER010
:LABEL040
INTEGER003 = 4
INTEGER001 = 1
:LABEL041
STRING029 = Inkey()
If (STRING029 == "") Then
If (INTEGER001 > INTEGER002) Goto LABEL040
Gosub LABEL011
Inc INTEGER001
Goto LABEL041
Endif
If (STRING029 == Chr(27)) Goto LABEL043
If (STRING029 == Chr(13)) Goto LABEL044
If (STRING029 == Chr(8)) Goto LABEL042
If (!InStr(Mask_Ascii(), STRING029)) Goto LABEL041
If (INTEGER011 > 34) Goto LABEL041
AnsiPos INTEGER009, INTEGER010
Print "@X0F" + STRING029
STRING026 = STRING026 + STRING029
Inc INTEGER011
Inc INTEGER009
Goto LABEL041
:LABEL042
If (INTEGER011 == 0) Goto LABEL041
AnsiPos INTEGER009 - 1, INTEGER010
Print Chr(32) + Chr(8)
STRING026 = Left(STRING026, Len(STRING026) - 1)
Dec INTEGER011
Dec INTEGER009
Goto LABEL041
:LABEL043
AnsiPos INTEGER009, INTEGER010
If (STRING026 == "") Goto LABEL045
Backup INTEGER011
Print Space(INTEGER011)
Backup INTEGER011
Goto LABEL039
:LABEL044
If (STRING026 == "") Goto LABEL045
RdUNet STRING028
If (UN_Name() == "") Goto LABEL049
If (Right(UN_Oper(), 7) <> "SAC-WHO") Goto LABEL048
Goto LABEL050
:LABEL045
Print Space(10) + "@X04MESSAGE ABORTED@X0C!"
Delay 30
Backup 16
Print Space(16)
Goto LABEL051
:LABEL046
AnsiPos 10, STRING004 + 4
Print "@X04YEAH, THiS iS YoUR NoDE@X0C!"
Delay 30
Backup 24
Print Space(24)
Goto LABEL036
:LABEL047
AnsiPos 11, STRING004 + 4
Print "@X04NoDE iS NoT AVAiLABLE@X0C!"
Delay 30
Backup 22
Print Space(22)
Goto LABEL036
:LABEL048
If (UN_Stat() == "A") Then
Broadcast STRING028, STRING028, "MSG from Nd# " + String(PcbNode()) + ": " + STRING026
Else
:LABEL049
AnsiPos 4, STRING004 + 4
Print "@X04 NoDE iS No LoNGER AVAiLABLE@X0C! "
Delay 30
Backup 31
Print Space(28)
Goto LABEL036
:LABEL050
FCreate 1, PPEPath() + "OLM" + STRING028 + ".$$$", 2, 0
FPutLn 1, String(PcbNode()) + Left(" ", 3 - Len(PcbNode())) + STRING026
FClose 1
Endif
AnsiPos 4, STRING004 + 4
Print " @X02MESSAGE SEND TO NoDE# " + STRING028 + " "
Delay 27
:LABEL051
AnsiPos 2, STRING004 + 3
Print Space(39)
AnsiPos 2, STRING004 + 4
Print Space(39)
Goto LABEL007
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 3 End
; 4 Cls
; 4 Wait
; 1 Color
; 150 Goto
; 146 Let
; 29 Print
; 44 PrintLn
; 111 If
; 1 FCreate
; 6 FOpen
; 7 FClose
; 6 FGet
; 1 FPutLn
; 2 StartDisp
; 3 Delete
; 9 Gosub
; 5 Return
; 5 Delay
; 14 Inc
; 3 Dec
; 10 Newline
; 2 Stop
; 4 Beep
; 1 Broadcast
; 6 RdUNet
; 1 WrUNet
; 25 AnsiPos
; 7 Backup
; 1 SaveScrn
; 1 RestScrn
; 4 FSeek
; 6 FRead
; 1 FWrite
; 1 Copy
; 1 GetAltUser
; 2 EndProc
;
;
; ■ Functions used :
;
; 5 /
; 137 +
; 29 -
; 78 ==
; 5 <>
; 2 <
; 18 >
; 55 !
; 9 ||
; 32 Len(
; 4 Upper()
; 26 Left()
; 16 Right()
; 13 Space()
; 2 Ferr()
; 18 Chr()
; 15 InStr()
; 11 LTrim()
; 5 RTrim()
; 4 Time()
; 1 U_LDate()
; 1 U_LTime()
; 1 U_LDir()
; 1 U_Logons()
; 1 U_Ful()
; 1 U_Fdl()
; 1 U_BdlDay()
; 1 U_Bdl()
; 1 U_Bul()
; 6 StripAtx()
; 8 Replace()
; 4 Inkey()
; 22 String()
; 1 Mask_Ascii()
; 1 PCBDat()
; 7 PPEPath()
; 11 PcbNode()
; 1 ReadLine()
; 27 UN_Stat()
; 10 UN_Name()
; 2 UN_City()
; 15 UN_Oper()
; 7 Exist()
; 1 AnsiOn()
; 3 GetY()
; 3 FileInf()
; 2 MaxNode()
; 1 U_RecNum()
;
;------------------------------------------------------------------------------
;
; Analysis flags : Rd
;
; R - Read user ■ 5
; User records are read, this may signify that someone wants to get
; various informations about a user (for example his password), but
; this may also be normal for a program accessing user records (for
; example a User Editor)
; ■ Search for : GETALTUSER
;
; d - Access PCBOARD.DAT ■ 2
; Program gets the full pathname to PCBOARD.DAT, this may be usefull
; for many PPE so they can find various informations on the system
; (system paths, max number of lines in messages, ...) but it may also
; be a way to gather vital informations.
; ■ Search for : PCBDAT()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 0 For/Next
; 1 While/EndWhile
; 24 If/Then or If/Then/Else
; 2 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------