home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carsten's PPE Collection
/
Carstens_PPE_Collection_2007.zip
/
T
/
THTOFF20.ZIP
/
THTOFF.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-10-01
|
5KB
|
325 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
Integer INTEGER010
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 STRING020
String STRING021
String STRING022
String STRING023
String STRING024
String STRING025
String STRING026
String STRING027
;------------------------------------------------------------------------------
FOpen 1, PPEPath() + PPEName() + ".cnf", 0, 0
FGet 1, STRING002
FGet 1, STRING003
FGet 1, STRING004
FGet 1, STRING005
FGet 1, STRING006
FGet 1, STRING007
FGet 1, STRING011
FGet 1, STRING012
FGet 1, STRING013
FGet 1, INTEGER001
FGet 1, STRING016
FGet 1, STRING019
FGet 1, STRING017
FGet 1, STRING018
FGet 1, STRING020
FGet 1, STRING021
FGet 1, STRING022
FGet 1, STRING023
FGet 1, STRING024
FGet 1, STRING025
FGet 1, STRING008
FGet 1, STRING009
FClose 1
If (!(STRING027 == "0")) Print "" ; PPLC BUG!
STRING027 = ((((((((((((((((1.12222e+49 + (99 * 10000) * 99) * 1e+64) * 4.54545e+27) * 34343434) * 56) * 6545645) * 4545) * 4343443) * 1e+43) * 6) * 6) * 8) * 5.65657e+20) * 78) * 78) * (6 ^ 565656)) * 1e+10
INTEGER002 = INTEGER001
INTEGER003 = INTEGER001
STRING001 = ""
INTEGER006 = STRING016
STRING010 = "@X01" + Chr(67) + Chr(111) + Chr(100) + Chr(101) + Chr(100) + "@X04 " + Chr(66) + Chr(121) + "@X0E " + Chr(84) + Chr(104) + Chr(101) + "@X01 " + Chr(77) + Chr(97) + Chr(115) + Chr(116) + Chr(101) + Chr(114)
StartDisp 1
INTEGER005 = GetY()
DispFile PPEPath() + PPEName() + ".pcb", 4 + 2
INTEGER004 = GetY()
STRING026 = 0
AnsiPos 29, INTEGER004 - STRING020
Print STRING010
AnsiPos INTEGER006, INTEGER004 - STRING021
Print STRING002
STRING014 = NoChar()
:LABEL001
If (INTEGER001 > 10) INTEGER001 = 10
For INTEGER007 = 1 To INTEGER001
AnsiPos STRING016, INTEGER004 - STRING022
Print STRING005 + STRING026 + "@X07"
Print STRING005 + "∙∙∙∙∙@X07"
AnsiPos STRING016, INTEGER004 - STRING023
Print STRING006 + STRING008 + STRING008 + STRING008 + STRING008 + STRING008 + STRING008
Inc STRING016
Inc STRING016
Inc STRING016
Inc STRING016
Inc STRING016
If (STRING026 <> 9) Inc STRING016
If (((STRING026 == INTEGER001 + 9) || (STRING026 == INTEGER001 + 18)) || (STRING026 == INTEGER001 + 27)) Dec STRING016
Inc STRING026
Next
If (INTEGER003 > 10) Then
AnsiPos STRING016, INTEGER004 - STRING023
Print STRING006 + STRING008 + STRING008
Else
AnsiPos STRING016, INTEGER004 - STRING023
Print STRING006 + STRING008
Endif
AnsiPos STRING016, INTEGER004 - STRING022
Print STRING005 + STRING026 + "@X07"
STRING016 = INTEGER006
INTEGER010 = Len(INTEGER002)
AnsiPos INTEGER006, INTEGER004 - STRING024
If (INTEGER010 == 2) Then
INTEGER010 = 1
Else
INTEGER010 = 2
Endif
Print STRING003 + String(INTEGER002) + Space(INTEGER010) + STRING004
INTEGER001 = INTEGER002
For STRING015 = 1 To INTEGER001
Print "@BEEP@"
AnsiPos STRING016, INTEGER004 - STRING023
Print STRING007 + STRING009
Delay 2
Gosub LABEL002
AnsiPos STRING016 + 1, INTEGER004 - STRING023
Print STRING007 + STRING009
Delay 2
Gosub LABEL002
AnsiPos STRING016 + 2, INTEGER004 - STRING023
Print STRING007 + STRING009
Delay 2
Gosub LABEL002
AnsiPos STRING016 + 3, INTEGER004 - STRING023
Print STRING007 + STRING009
Delay 2
Gosub LABEL002
AnsiPos STRING016 + 4, INTEGER004 - STRING023
Print STRING007 + STRING009
Delay 2
Gosub LABEL002
AnsiPos STRING016 + 5, INTEGER004 - STRING023
Print STRING007 + STRING009
Delay 2
Gosub LABEL002
AnsiPos STRING016 + 6, INTEGER004 - STRING023
Print STRING007 + STRING009 + "@BEEP@"
Delay 3
Gosub LABEL002
Goto LABEL003
:LABEL002
STRING001 = Upper(Inkey())
If (STRING001 == Chr(13)) Break
If ((STRING001 == "H") || (STRING001 == "G")) Goto LABEL004
If (Abort()) Break
Return
:LABEL003
If (INTEGER002 == 1) Goto LABEL004
Dec INTEGER002
Inc INTEGER008
INTEGER010 = Len(INTEGER002)
If (INTEGER010 == 2) Then
INTEGER010 = 1
Else
INTEGER010 = 2
Endif
AnsiPos INTEGER006, INTEGER004 - STRING024
Print STRING003 + String(INTEGER002) + Space(INTEGER010) + STRING004
Inc STRING016
Inc STRING016
Inc STRING016
Inc STRING016
Inc STRING016
Inc STRING016
If ((((STRING014 <> YesChar()) && (INTEGER003 - INTEGER002 == 10)) || (INTEGER003 - INTEGER002 == 20)) || (INTEGER003 - INTEGER002 == 30)) Then
STRING016 = INTEGER006
STRING014 = YesChar()
AnsiPos INTEGER006, INTEGER004 - STRING023
Print STRING025 + Space(61)
AnsiPos INTEGER006, INTEGER004 - STRING022
Print STRING025 + Space(61)
INTEGER001 = INTEGER003 - INTEGER008
STRING016 = INTEGER006
Goto LABEL001
Endif
Next
AnsiPos INTEGER006, INTEGER004 - STRING021
Print Space(61)
AnsiPos INTEGER006, INTEGER004 - STRING024
Print STRING025 + Space(61)
AnsiPos INTEGER006 + 6, INTEGER004 - STRING024
PrintLn STRING011 + "@X0E" + String(INTEGER002) + " " + STRING012
KbdStuff "^K"
Goto LABEL005
:LABEL004
Dec INTEGER002
AnsiPos INTEGER006, INTEGER004 - STRING021
Print Space(61)
AnsiPos INTEGER006 + 2, INTEGER004 - STRING024
Print STRING025 + Space(53)
AnsiPos INTEGER006 + 20, INTEGER004 - STRING024
PrintLn STRING013
KbdStuff "H"
If (STRING019 == YesChar()) Then
DtrOff
Shell 0, INTEGER009, STRING017, STRING018
Hangup
Else
Hangup
Endif
:LABEL005
AnsiPos INTEGER006 + 72, INTEGER004
End
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 End
; 21 Goto
; 28 Let
; 25 Print
; 2 PrintLn
; 15 If
; 1 DispFile
; 1 FOpen
; 1 FClose
; 22 FGet
; 1 StartDisp
; 2 Hangup
; 7 Gosub
; 1 Return
; 1 DtrOff
; 7 Delay
; 14 Inc
; 3 Dec
; 1 Shell
; 2 KbdStuff
; 25 AnsiPos
;
;
; ■ Functions used :
;
; 1 ^
; 18 *
; 76 +
; 28 -
; 14 ==
; 2 <>
; 2 <
; 2 <=
; 2 >
; 4 >=
; 9 !
; 5 &&
; 7 ||
; 2 Len(
; 1 Upper()
; 8 Space()
; 17 Chr()
; 1 Abort()
; 1 NoChar()
; 3 YesChar()
; 1 Inkey()
; 3 String()
; 2 PPEPath()
; 2 GetY()
; 2 PPEName()
;
;------------------------------------------------------------------------------
;
; Analysis flags : BS
;
; B - Brute hangup ■ 1
; Program hangup without notification. This may be a good way to
; disconnect a user, but if used randomly, may be very nasty
; ■ Search for : HANGUP, DTROFF
;
; 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
;
;
;------------------------------------------------------------------------------
;
; One or more PPLC bugs were found, this is not a PPLX error, but PPLX is
; reporting the error ;) Some statements like VAR = !!!!10, VAR = !0*!0
; or similar things are not handled correctly by PPLC, some may use this
; to avoid a correct decompilation... This doesn't mean that there is
; actually an error, but the probability of error is high...
; ■ Search for : PPLC BUG
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 2 For/Next
; 0 While/EndWhile
; 5 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------