home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
PCBOARD
/
DFRP10.ZIP
/
RUNPPE.PPE
(
.txt
)
< prev
Wrap
PCBoard Programming Language Executable
|
1994-02-20
|
4KB
|
258 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
String STRING001
String TSTRING002(1000)
String TSTRING003(1000)
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
String STRING011
String STRING012
String STRING013
;------------------------------------------------------------------------------
STRING004 = PPEPath() + "KNOWNPPE.LST"
BOOLEAN001 = 0
Gosub LABEL007
INTEGER004 = INTEGER002 / 10 + 1
INTEGER003 = 0
INTEGER005 = 0
:LABEL001
If (BOOLEAN001) Goto LABEL002
Cls
PrintLn
STRING012 = "@X0F- RUNPPE v1.0 -"
Gosub LABEL005
STRING012 = "@X04by @X01 Dan Fitzpatrick"
Gosub LABEL005
PrintLn
If (INTEGER002 > 0) Then
STRING012 = "@X0C-- The following PPEs are already known:"
Gosub LABEL005
PrintLn
For INTEGER001 = 1 To 10
If (INTEGER003 * 20 + 2 * INTEGER001 - 1 <= INTEGER002) Then
STRING006 = "@X0C" + Right(I2S(2 * INTEGER001 - 1, 10), 2) + "@X01 - @X0B" + Left(TSTRING003(INTEGER003 * 20 + 2 * INTEGER001 - 1), 30)
INTEGER005 = INTEGER003 * 20 + 2 * INTEGER001 - 1
Else
STRING006 = Space(35)
Endif
If (INTEGER003 * 20 + 2 * INTEGER001 < INTEGER002) Then
STRING007 = "@X0C" + Right(I2S(2 * INTEGER001, 10), 2) + "@X01 - @X0B" + Left(TSTRING003(INTEGER003 * 20 + 2 * INTEGER001), 30)
INTEGER005 = INTEGER003 * 20 + 2 * INTEGER001
Else
STRING007 = Space(35)
Endif
STRING012 = STRING006 + Space(4) + STRING007
Gosub LABEL005
Next
STRING012 = "@X04Page@X0B " + Right(I2S(INTEGER003 + 1, 10), 2) + "@X04 of@X0B " + Right(I2S(INTEGER004, 10), 2)
Gosub LABEL005
PrintLn
STRING012 = "@X0CN@X0Bext Page...@X0CP@X0Brevious Page...@X0CA@X0Bdd a PPE...@X0CQ@X0Buit"
Gosub LABEL005
STRING010 = Mask_Num() + "NnPpAaQq"
STRING011 = 2
STRING008 = "What is your selection"
Gosub LABEL004
Select Case (STRING009)
Case "a", "A"
Gosub LABEL003
Case "q", "Q"
BOOLEAN001 = 1
Case "n", "N"
Inc INTEGER003
If (INTEGER003 == INTEGER004) Then
INTEGER003 = 0
Endif
Case "p", "P"
Dec INTEGER003
If (INTEGER003 < 0) Then
INTEGER003 = INTEGER004 - 1
Endif
Case Else
Cls
PrintLn "Running " + TSTRING003(INTEGER003 * 20 + S2I(STRING009, 10)) + " now..."
Wait
Call TSTRING002(INTEGER003 * 20 + S2I(STRING009, 10))
Wait
End Select
Else
Gosub LABEL003
Endif
Goto LABEL001
:LABEL002
Goto LABEL010
:LABEL003
STRING008 = "Enter the DRIVE:PATH\NAME of the PPE to be run:"
STRING010 = Mask_File()
STRING011 = 254
Gosub LABEL004
STRING001 = STRING009
If (InStr(Upper(STRING001), "QUIT") == 0) Then
BOOLEAN001 = 1
Endif
If (Exist(STRING001)) Then
STRING008 = "Should this PPE be added to the known PPEs list (Y/N)"
STRING010 = "YyNn"
STRING011 = 1
Gosub LABEL004
If ((STRING009 == "Y") || (STRING009 == "y")) Then
STRING008 = "Please enter a description for this PPE"
InputText STRING008, STRING005, 11, 30
Inc INTEGER002
TSTRING002(INTEGER002) = STRING001
TSTRING003(INTEGER002) = STRING005
Gosub LABEL006
Endif
Call STRING001
Wait
Else
PrintLn
STRING012 = "@X01The filename you entered does not exist on the system!"
Gosub LABEL005
STRING012 = "@X04You entered: " + STRING001
Gosub LABEL005
Wait
Endif
Return
:LABEL004
InputStr STRING008, STRING009, 4, STRING011, STRING010, 64
Return
:LABEL005
STRING013 = StripAtx(STRING012)
If (Len(STRING013) > 79) Then
PrintLn STRING012
Else
PrintLn Space(40 - Len(STRING013) / 2) + STRING012
Endif
Return
:LABEL006
FAppend 1, STRING004, 1, 3
FPutLn 1, STRING001
FPutLn 1, STRING005
FClose 1
Return
:LABEL007
If (Exist(STRING004)) Then
FOpen 1, STRING004, 0, 0
INTEGER001 = 0
:LABEL008
If (Ferr(1)) Goto LABEL009
Inc INTEGER001
FGet 1, TSTRING002(INTEGER001)
FGet 1, TSTRING003(INTEGER001)
Goto LABEL008
:LABEL009
INTEGER002 = INTEGER001 - 1
FClose 1
Endif
Return
:LABEL010
End
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 End
; 2 Cls
; 4 Wait
; 30 Goto
; 41 Let
; 8 PrintLn
; 17 If
; 1 FOpen
; 1 FAppend
; 2 FClose
; 2 FGet
; 2 FPutLn
; 1 InputStr
; 15 Gosub
; 5 Return
; 3 Inc
; 1 Dec
; 1 InputText
; 2 Call
;
;
; ■ Functions used :
;
; 16 *
; 2 /
; 28 +
; 7 -
; 12 ==
; 3 <
; 2 <=
; 2 >
; 2 >=
; 17 !
; 2 &&
; 6 ||
; 2 Len(
; 1 Upper()
; 2 Left()
; 4 Right()
; 4 Space()
; 1 Ferr()
; 1 InStr()
; 1 StripAtx()
; 1 Mask_Num()
; 1 Mask_File()
; 1 PPEPath()
; 2 Exist()
; 4 I2S()
; 2 S2I()
;
;------------------------------------------------------------------------------
;
; Analysis flags : C
;
; C - Call child PPE ■ 3
; This is usually normal, but may be a tricky way to launch some
; sysop-only commands.
; ■ Search for : CALL
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 1 For/Next
; 0 While/EndWhile
; 10 If/Then or If/Then/Else
; 1 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------