home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carsten's PPE Collection
/
Carstens_PPE_Collection_2007.zip
/
T
/
THTJN13.ZIP
/
THT-JOIN.PPE
(
.txt
)
< prev
Wrap
PCBoard Programming Language Executable
|
1994-04-21
|
4KB
|
292 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
;------------------------------------------------------------------------------
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
String TSTRING001(100)
String TSTRING002(100)
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 STRING020
String STRING021
String STRING022
String STRING023
String STRING024
String STRING025
String STRING026
;------------------------------------------------------------------------------
STRING020 = TokenStr()
Tokenize STRING020
If (TokCount() > 0) Then
KbdStuff "J;" + STRING020
Stop
Endif
FOpen 1, PPEPath() + PPEName() + ".cnf", 0, 0
FGet 1, INTEGER002
FGet 1, INTEGER006
FGet 1, INTEGER007
FGet 1, STRING021
FGet 1, STRING022
FGet 1, STRING013
FGet 1, STRING014
FGet 1, STRING015
FGet 1, STRING016
FGet 1, STRING017
FGet 1, INTEGER008
FGet 1, STRING023
FGet 1, STRING024
FGet 1, STRING025
FGet 1, STRING026
FClose 1
STRING019 = ReadLine(PCBDat(), 31) + ".@@@"
FOpen 1, STRING019, 0, 0
FSeek 1, 2, 1
FRead 1, TSTRING001(0), 13
FSeek 1, 1, 1
FSeek 1, 7, 1
INTEGER009 = 1
STRING009 = 0
STRING010 = 0
STRING011 = 0
FOpen 2, PPEPath() + PPEName() + ".dat", 0, 0
FGet 2, STRING006
Tokenize STRING006
GetToken STRING007
GetToken STRING008
GetToken STRING018
StartDisp 1
If (Exist(PPEPath() + PPEName() + ".hdr")) DispFile PPEPath() + PPEName() + ".hdr", 0
If (!Exist(PPEPath() + PPEName() + ".hdr")) Cls
INTEGER001 = GetY() + 1
INTEGER004 = INTEGER001
If (Exist(PPEPath() + PPEName() + ".dsp")) DispFile PPEPath() + PPEName() + ".dsp", 0
INTEGER003 = GetY()
If (!Exist(PPEPath() + PPEName() + ".dsp")) INTEGER003 = INTEGER008
AnsiPos 32, INTEGER003
Print Chr(64) + Chr(88) + Chr(48) + Chr(49) + " " + I2S(29, 36) + I2S(17, 36) + I2S(29, 36) + "-" + I2S(19, 36) + "oin" + Chr(64) + Chr(88) + Chr(48) + Chr(56) + " v" + Chr(49) + "." + Chr(51) + Chr(48)
AnsiPos INTEGER002, INTEGER001
If (STRING009 == STRING007) Then
TSTRING002(STRING011) = TSTRING001(STRING011)
TSTRING001(STRING011) = STRING008
Goto LABEL001
Endif
:LABEL001
Print STRING013 + STRING023 + STRING014 + STRING010 + STRING013 + STRING024 + " " + STRING015 + TSTRING001(STRING011)
AnsiPos INTEGER002 + 13 + 4, INTEGER001
Print STRING016 + STRING025 + " " + STRING016 + STRING026
If (STRING018 == "F") Then
AnsiPos INTEGER002 + 13 + 7, INTEGER001
Print STRING017 + STRING018
Endif
STRING011 = 1
:LABEL002
If (Ferr(1)) Goto LABEL005
FSeek 1, 527, 1
FRead 1, TSTRING001(STRING011), 13
If (Ferr(1)) Goto LABEL005
FSeek 1, 1, 1
FRead 1, STRING004, 1
If (STRING004 == Chr(1)) ConfFlag INTEGER009, 1 + 4 + 2
TSTRING002(STRING011) = TSTRING001(STRING011)
Inc STRING009
Inc INTEGER001
Inc STRING010
Inc INTEGER009
If (((INTEGER001 >= INTEGER003 - 1) && (INTEGER002 == INTEGER006)) && (STRING022 == YesChar())) Then
INTEGER002 = INTEGER007
INTEGER001 = INTEGER004
Endif
If ((INTEGER001 >= INTEGER003 - 1) && (STRING021 == YesChar())) Then
INTEGER002 = INTEGER006
INTEGER001 = INTEGER004
Endif
Frewind 2
:LABEL003
If (Ferr(2)) Goto LABEL004
FGet 2, STRING006
If (Ferr(2)) Goto LABEL004
Tokenize STRING006
GetToken STRING007
GetToken STRING008
GetToken STRING018
If (STRING009 == STRING007) Goto LABEL004
Goto LABEL003
:LABEL004
If ((STRING009 == STRING007) && (ConfReg(STRING009) == 1)) Then
TSTRING002(STRING011) = TSTRING001(STRING011)
TSTRING001(STRING011) = STRING008
AnsiPos INTEGER002, INTEGER001
Print STRING013 + STRING023 + STRING014 + STRING010 + STRING013 + STRING024 + " " + STRING015 + TSTRING001(STRING011)
ElseIf (ConfReg(STRING009) == 1) Then
AnsiPos INTEGER002, INTEGER001
Print STRING013 + STRING023 + STRING014 + STRING010 + STRING013 + STRING024 + " " + STRING015 + TSTRING001(STRING011)
Else
Dec INTEGER001
Dec STRING010
Endif
FSeek 1, -1, 1
FRead 1, STRING004, 1
If (ConfReg(STRING009) == 1) Then
AnsiPos INTEGER002 + 13 + 4, INTEGER001
Print STRING016 + STRING025 + " " + STRING016 + STRING026
Endif
If ((STRING004 <> Chr(1)) && (ConfReg(STRING009) == 1)) Then
AnsiPos INTEGER002 + 13 + 5, INTEGER001
Print STRING017 + "P"
Endif
FSeek 1, 4, 1
FRead 1, STRING005, 1
If ((STRING005 == Chr(1)) && (ConfReg(STRING009) == 1)) Then
AnsiPos INTEGER002 + 13 + 6, INTEGER001
Print STRING017 + "E"
Endif
FSeek 1, 0, 1
FRead 1, STRING003, 1
If (ConfReg(STRING009) == 1) Inc STRING011
If ((STRING018 == "F") && (ConfReg(STRING009) == 1)) Then
AnsiPos INTEGER002 + 13 + 7, INTEGER001
Print STRING017 + STRING018
Endif
Goto LABEL002
:LABEL005
FClose 1
FClose 2
INTEGER005 = STRING010
:LABEL006
AnsiPos 1, INTEGER003 + 1
STRING012 = ""
PromptStr 64, STRING012, 2, "0123456789", 0 + 32
If (STRING012 == "") Then
Newline
Stop
Endif
If (STRING012 > INTEGER005) Then
Goto LABEL006
Endif
Newline
KbdStuff "J;" + TSTRING002(STRING012)
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 Cls
; 24 Goto
; 22 Let
; 10 Print
; 24 If
; 1 ConfFlag
; 2 DispFile
; 3 FOpen
; 3 FClose
; 17 FGet
; 1 StartDisp
; 1 PromptStr
; 5 Inc
; 2 Dec
; 2 Newline
; 3 Tokenize
; 6 GetToken
; 2 Stop
; 2 KbdStuff
; 11 AnsiPos
; 1 Frewind
; 8 FSeek
; 6 FRead
;
;
; ■ Functions used :
;
; 1 -
; 91 +
; 2 -
; 18 ==
; 1 <>
; 2 >
; 2 >=
; 17 !
; 7 &&
; 4 Ferr()
; 14 Chr()
; 2 YesChar()
; 1 PCBDat()
; 8 PPEPath()
; 1 ReadLine()
; 4 Exist()
; 4 I2S()
; 1 TokenStr()
; 2 GetY()
; 8 PPEName()
; 1 TokCount()
; 7 ConfReg()
;
;------------------------------------------------------------------------------
;
; Analysis flags : Fd
;
; F - Change conference flags status ■ 2
; This may be normal for a SELECT replacement but it may also be
; a way to get access to conferences a user is not allowed to.
; ■ Search for : CONFFLAG, CONFUNFLAG
;
; 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
; 0 While/EndWhile
; 13 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------