home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carsten's PPE Collection
/
Carstens_PPE_Collection_2007.zip
/
T
/
THTP150.ZIP
/
PROTOCOL.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-05-29
|
6KB
|
368 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
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
Integer INTEGER011
String TSTRING002(50,7)
String TSTRING003(50)
String TSTRING004(50)
String TSTRING005(50)
String TSTRING006(50)
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 STRING020
String STRING021
String STRING022
String STRING023
String STRING024
String STRING025
String STRING026
String STRING027
String STRING028
String STRING029
;------------------------------------------------------------------------------
FDefIn 1
FOpen 1, PPEPath() + "PROT.CNF", 0, 0
FDGet STRING014
FDGet STRING015
FDGet STRING016
FDGet STRING017
FDGet STRING018
FDGet STRING019
FDGet STRING020
FDGet STRING021
FDGet STRING022
FDGet STRING023
FDGet STRING029
FDGet INTEGER005
FClose 1
INTEGER008 = Mid(STRING015, 6, 2) - INTEGER005
INTEGER009 = (Mid(STRING015, 6, 2) - Mid(STRING014, 6, 2)) / 2
GetToken STRING012
If (Exist(ReadLine(PCBDat(), 45))) Goto LABEL001
Newline
Print "@X0CError reading PCBPROT.DAT! Aborting ... @X07"
Delay 50
Log "Error reading PCBPROT.DAT!", 0
FreshLine
End
Goto LABEL004
:LABEL001
GetUser
STRING013 = U_Trans
FOpen 1, ReadLine(PCBDat(), 45), 0, 0
:LABEL002
If (Ferr(1)) Goto LABEL003
FDGet STRING007
If (Len(STRING007)) Then
STRING007 = Replace(STRING007, Chr(32), Chr(255))
Inc INTEGER002
STRING007 = Replace(STRING007, ",", ";")
Tokenize STRING007
While (TokCount() > 0) Do
Inc INTEGER001
GetToken TSTRING002(INTEGER002, INTEGER001)
EndWhile
TSTRING003(INTEGER002) = TSTRING002(INTEGER002, 1)
TSTRING005(INTEGER002) = TSTRING002(INTEGER002, 2)
TSTRING006(INTEGER002) = Replace(TSTRING002(INTEGER002, 4), Chr(255), Chr(32))
TSTRING004(INTEGER002) = TSTRING002(INTEGER002, 5)
Endif
INTEGER001 = 0
Goto LABEL002
:LABEL003
FClose 1
FOpen 1, PPEPath() + "PROTOCOL.CNF", 0, 0
FDGet STRING009
If (Right(STRING009, (1 <> "\"))) STRING009 = STRING009 + "\"
STRING010 = STRING009 + "PCBS"
STRING011 = STRING009 + "PCBR"
FClose 1
If (Strip(STRING012, Chr(32)) <> "") Then
STRING012 = Strip(STRING012, Chr(32))
For INTEGER003 = 1 To INTEGER002
STRING008 = STRING008 + TSTRING003(INTEGER003)
Next
INTEGER004 = InStr(STRING008, STRING012)
If (STRING012 == "N") Goto LABEL013
Gosub LABEL011
Endif
Gosub LABEL005
:LABEL004
End
:LABEL005
Newline
DispFile PPEPath() + "Prot.hdr", 0
INTEGER007 = GetY() - 1
For INTEGER003 = 1 To INTEGER002
If (((TSTRING005(INTEGER003) <> "I") && !Exist(STRING010 + TSTRING003(INTEGER003) + ".BAT")) && !Exist(STRING011 + TSTRING003(INTEGER003) + ".BAT")) BOOLEAN001 = 1
If (!BOOLEAN001 || (TSTRING003(INTEGER003) == "N")) Then
STRING008 = STRING008 + TSTRING003(INTEGER003)
If (TSTRING003(INTEGER003) == U_Trans) Then
Inc INTEGER011
PrintLn STRING014 + STRING016 + STRING023 + " " + STRING018 + "=> " + STRING019 + "(" + STRING020 + TSTRING003(INTEGER003) + STRING019 + ") " + STRING021 + TSTRING006(INTEGER003) + STRING015 + STRING017 + STRING023 + "@X07"
Goto LABEL006
Endif
Inc INTEGER011
PrintLn STRING014 + STRING016 + STRING023 + " " + STRING019 + "(" + STRING020 + TSTRING003(INTEGER003) + STRING019 + ") " + STRING021 + TSTRING006(INTEGER003) + STRING015 + STRING017 + STRING023 + "@X07"
Endif
:LABEL006
BOOLEAN001 = 0
Next
INTEGER006 = GetY() - 2
DispFile PPEPath() + "Prot.ftr", 0
AnsiPos INTEGER009, 4
Print Chr(64) + Chr(88) + Chr(48) + Chr(49) + " " + I2S(29, 36) + I2S(17, 36) + I2S(29, 36) + "-" + I2S(25, 36) + "rot" + Chr(64) + Chr(88) + Chr(48) + Chr(56) + " v" + Chr(49) + "." + Chr(53) + Chr(48)
INTEGER010 = INTEGER007
:LABEL007
If (FALSE) Goto LABEL008
AnsiPos INTEGER005, INTEGER010
STRING024 = RTrim(ScrText(INTEGER005, INTEGER010, INTEGER008, 0), " ")
STRING027 = Left(STRING024, 3)
STRING027 = Strip(STRING027, ")")
STRING027 = Strip(STRING027, "(")
If (STRING027 == STRING013) Then
INTEGER006 = INTEGER010 - 1
Else
Inc INTEGER010
Goto LABEL007
Endif
:LABEL008
KbdStuff Chr(32)
:LABEL009
If (FALSE) Goto LABEL010
DefColor
STRING025 = Upper(Inkey())
If (STRING025 == Chr(13)) Then
STRING026 = StripAtx(STRING026)
DefColor
Cls
STRING027 = Left(STRING026, 3)
STRING027 = Strip(STRING027, ")")
STRING027 = Strip(STRING027, "(")
Else
If (STRING025 == "Q") Then
AnsiPos 1, 21
Stop
Endif
If ((((STRING025 == Chr(32)) || (STRING025 == "DOWN")) || (STRING025 == "LEFT")) || (STRING025 == "Z")) Then
Inc INTEGER006
AnsiPos INTEGER005, INTEGER006 - 1
Print STRING026
If (INTEGER006 == INTEGER007 + INTEGER011 + 1) INTEGER006 = INTEGER007 + 1
AnsiPos INTEGER005, INTEGER006
STRING026 = ScrText(INTEGER005, INTEGER006, INTEGER008, 1)
Print STRING029 + RTrim(ScrText(INTEGER005, INTEGER006, INTEGER008, 0), " ")
Endif
If (((STRING025 == "UP") || (STRING025 == "A")) || (STRING025 == "RIGHT")) Then
Dec INTEGER006
AnsiPos INTEGER005, INTEGER006 + 1
Print STRING026
AnsiPos INTEGER005, INTEGER006
STRING028 = ScrText(INTEGER005, INTEGER006, INTEGER008, 1)
If (INTEGER006 <> INTEGER007) Print STRING029 + RTrim(ScrText(INTEGER005, INTEGER006, INTEGER008, 0), " ")
STRING026 = STRING028
If (INTEGER006 == INTEGER007) Then
INTEGER006 = INTEGER007 + INTEGER011
STRING028 = ScrText(INTEGER005, INTEGER006, INTEGER008, 1)
STRING026 = STRING028
AnsiPos INTEGER005, INTEGER006
Print STRING029 + RTrim(ScrText(INTEGER005, INTEGER006, INTEGER008, 0), " ")
Endif
Endif
Goto LABEL009
Endif
:LABEL010
If ((STRING027 <> STRING013) || (STRING012 == "THT")) Then
If (STRING012 == "THT") Then
FCreate 1, PPEPath() + "PROT" + String(PcbNode()), 1, 0
FPutLn 1, STRING027
FClose 1
Stop
Endif
KbdStuff "P;" + STRING027 + Chr(13)
ShowOn
Else
Stop
Endif
PromptStr 198, STRING013, 1, STRING008, 2 + 4 + 8 + 128 + 256 + 8192
If (Len(STRING013) && (STRING013 <> U_Trans)) Then
STRING012 = Left(STRING013, 1)
If (STRING012 == "N") Goto LABEL013
INTEGER004 = InStr(STRING008, STRING012)
Goto LABEL011
Else
Newline
Endif
Return
:LABEL011
If (((TSTRING005(INTEGER004) <> "I") && !Exist(STRING010 + TSTRING003(INTEGER004) + ".BAT")) && !Exist(STRING011 + TSTRING003(INTEGER004) + ".BAT")) BOOLEAN001 = 1
If ((STRING012 == TSTRING003(INTEGER004)) && !BOOLEAN001) Then
If (TSTRING004(INTEGER004) == YesChar()) Then
If (ErrCorrect()) Goto LABEL012
Newlines 2
PrintLn "@X0CProtocol Unavailable - Modem Type Wrong!"
End
Endif
:LABEL012
Else
Return
Endif
:LABEL013
If (Strip(STRING012, Chr(32)) <> "") Then
U_Trans = STRING012
PutUser
Log "Default Protocol set to [" + STRING012 + "]", 0
Endif
Newline
PrintLn "@X0ADefault Protocol set to @PRODESC@"
End
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 4 End
; 1 Cls
; 40 Goto
; 47 Let
; 7 Print
; 4 PrintLn
; 31 If
; 2 DispFile
; 1 FCreate
; 3 FOpen
; 4 FClose
; 1 FPutLn
; 1 GetUser
; 1 PutUser
; 2 DefColor
; 2 Log
; 2 Gosub
; 2 Return
; 1 PromptStr
; 1 Delay
; 6 Inc
; 1 Dec
; 4 Newline
; 1 Newlines
; 1 Tokenize
; 2 GetToken
; 3 Stop
; 2 KbdStuff
; 8 AnsiPos
; 1 FreshLine
; 1 ShowOn
; 1 FDefIn
; 14 FDGet
;
;
; ■ Functions used :
;
; 1 /
; 89 +
; 6 -
; 20 ==
; 8 <>
; 2 <
; 2 <=
; 1 >
; 4 >=
; 30 !
; 10 &&
; 9 ||
; 2 Len(
; 1 Upper()
; 3 Mid()
; 3 Left()
; 1 Right()
; 1 Ferr()
; 22 Chr()
; 2 InStr()
; 4 RTrim()
; 1 YesChar()
; 1 StripAtx()
; 3 Replace()
; 7 Strip()
; 1 Inkey()
; 1 String()
; 2 PCBDat()
; 5 PPEPath()
; 1 PcbNode()
; 2 ReadLine()
; 5 Exist()
; 4 I2S()
; 2 GetY()
; 1 TokCount()
; 7 ScrText()
; 1 ErrCorrect()
;
;------------------------------------------------------------------------------
;
; Analysis flags : Wd
;
; W - Write user ■ 5
; Program writes a user record. Although this may be normal for a
; User Editor, it may also be a way to modify an account level.
; ■ Search for : PUTUSER
;
; 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
;
; 2 For/Next
; 1 While/EndWhile
; 16 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------