home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PCBOARD / DFRP10.ZIP / RUNPPE.PPE (.txt) < prev   
PCBoard Programming Language Executable  |  1994-02-20  |  4KB  |  258 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Integer  INTEGER001
  21.     Integer  INTEGER002
  22.     Integer  INTEGER003
  23.     Integer  INTEGER004
  24.     Integer  INTEGER005
  25.     String   STRING001
  26.     String   TSTRING002(1000)
  27.     String   TSTRING003(1000)
  28.     String   STRING004
  29.     String   STRING005
  30.     String   STRING006
  31.     String   STRING007
  32.     String   STRING008
  33.     String   STRING009
  34.     String   STRING010
  35.     String   STRING011
  36.     String   STRING012
  37.     String   STRING013
  38.  
  39. ;------------------------------------------------------------------------------
  40.  
  41.     STRING004 = PPEPath() + "KNOWNPPE.LST"
  42.     BOOLEAN001 = 0
  43.     Gosub LABEL007
  44.     INTEGER004 = INTEGER002 / 10 + 1
  45.     INTEGER003 = 0
  46.     INTEGER005 = 0
  47.     :LABEL001
  48.     If (BOOLEAN001) Goto LABEL002
  49.     Cls
  50.     PrintLn 
  51.     STRING012 = "@X0F- RUNPPE v1.0 -"
  52.     Gosub LABEL005
  53.     STRING012 = "@X04by @X01 Dan Fitzpatrick"
  54.     Gosub LABEL005
  55.     PrintLn 
  56.     If (INTEGER002 > 0) Then
  57.         STRING012 = "@X0C-- The following PPEs are already known:"
  58.         Gosub LABEL005
  59.         PrintLn 
  60.         For INTEGER001 = 1 To 10
  61.             If (INTEGER003 * 20 + 2 * INTEGER001 - 1 <= INTEGER002) Then
  62.                 STRING006 = "@X0C" + Right(I2S(2 * INTEGER001 - 1, 10), 2) + "@X01 - @X0B" + Left(TSTRING003(INTEGER003 * 20 + 2 * INTEGER001 - 1), 30)
  63.                 INTEGER005 = INTEGER003 * 20 + 2 * INTEGER001 - 1
  64.             Else
  65.                 STRING006 = Space(35)
  66.             Endif
  67.             If (INTEGER003 * 20 + 2 * INTEGER001 < INTEGER002) Then
  68.                 STRING007 = "@X0C" + Right(I2S(2 * INTEGER001, 10), 2) + "@X01 - @X0B" + Left(TSTRING003(INTEGER003 * 20 + 2 * INTEGER001), 30)
  69.                 INTEGER005 = INTEGER003 * 20 + 2 * INTEGER001
  70.             Else
  71.                 STRING007 = Space(35)
  72.             Endif
  73.             STRING012 = STRING006 + Space(4) + STRING007
  74.             Gosub LABEL005
  75.         Next
  76.         STRING012 = "@X04Page@X0B " + Right(I2S(INTEGER003 + 1, 10), 2) + "@X04 of@X0B " + Right(I2S(INTEGER004, 10), 2)
  77.         Gosub LABEL005
  78.         PrintLn 
  79.         STRING012 = "@X0CN@X0Bext Page...@X0CP@X0Brevious Page...@X0CA@X0Bdd a PPE...@X0CQ@X0Buit"
  80.         Gosub LABEL005
  81.         STRING010 = Mask_Num() + "NnPpAaQq"
  82.         STRING011 = 2
  83.         STRING008 = "What is your selection"
  84.         Gosub LABEL004
  85.         Select Case (STRING009)
  86.             Case "a", "A"
  87.                 Gosub LABEL003
  88.             Case "q", "Q"
  89.                 BOOLEAN001 = 1
  90.             Case "n", "N"
  91.                 Inc INTEGER003
  92.                 If (INTEGER003 == INTEGER004) Then
  93.                     INTEGER003 = 0
  94.                 Endif
  95.             Case "p", "P"
  96.                 Dec INTEGER003
  97.                 If (INTEGER003 < 0) Then
  98.                     INTEGER003 = INTEGER004 - 1
  99.                 Endif
  100.             Case Else
  101.                 Cls
  102.                 PrintLn "Running " + TSTRING003(INTEGER003 * 20 + S2I(STRING009, 10)) + " now..."
  103.                 Wait
  104.                 Call TSTRING002(INTEGER003 * 20 + S2I(STRING009, 10))
  105.                 Wait
  106.         End Select
  107.     Else
  108.         Gosub LABEL003
  109.     Endif
  110.     Goto LABEL001
  111.     :LABEL002
  112.     Goto LABEL010
  113.     :LABEL003
  114.     STRING008 = "Enter the DRIVE:PATH\NAME of the PPE to be run:"
  115.     STRING010 = Mask_File()
  116.     STRING011 = 254
  117.     Gosub LABEL004
  118.     STRING001 = STRING009
  119.     If (InStr(Upper(STRING001), "QUIT") == 0) Then
  120.         BOOLEAN001 = 1
  121.     Endif
  122.     If (Exist(STRING001)) Then
  123.         STRING008 = "Should this PPE be added to the known PPEs list (Y/N)"
  124.         STRING010 = "YyNn"
  125.         STRING011 = 1
  126.         Gosub LABEL004
  127.         If ((STRING009 == "Y") || (STRING009 == "y")) Then
  128.             STRING008 = "Please enter a description for this PPE"
  129.             InputText STRING008, STRING005, 11, 30
  130.             Inc INTEGER002
  131.             TSTRING002(INTEGER002) = STRING001
  132.             TSTRING003(INTEGER002) = STRING005
  133.             Gosub LABEL006
  134.         Endif
  135.         Call STRING001
  136.         Wait
  137.     Else
  138.         PrintLn 
  139.         STRING012 = "@X01The filename you entered does not exist on the system!"
  140.         Gosub LABEL005
  141.         STRING012 = "@X04You entered: " + STRING001
  142.         Gosub LABEL005
  143.         Wait
  144.     Endif
  145.     Return
  146.     :LABEL004
  147.     InputStr STRING008, STRING009, 4, STRING011, STRING010, 64
  148.     Return
  149.     :LABEL005
  150.     STRING013 = StripAtx(STRING012)
  151.     If (Len(STRING013) > 79) Then
  152.         PrintLn STRING012
  153.     Else
  154.         PrintLn Space(40 - Len(STRING013) / 2) + STRING012
  155.     Endif
  156.     Return
  157.     :LABEL006
  158.     FAppend 1, STRING004, 1, 3
  159.     FPutLn 1, STRING001
  160.     FPutLn 1, STRING005
  161.     FClose 1
  162.     Return
  163.     :LABEL007
  164.     If (Exist(STRING004)) Then
  165.         FOpen 1, STRING004, 0, 0
  166.         INTEGER001 = 0
  167.         :LABEL008
  168.         If (Ferr(1)) Goto LABEL009
  169.         Inc INTEGER001
  170.         FGet 1, TSTRING002(INTEGER001)
  171.         FGet 1, TSTRING003(INTEGER001)
  172.         Goto LABEL008
  173.         :LABEL009
  174.         INTEGER002 = INTEGER001 - 1
  175.         FClose 1
  176.     Endif
  177.     Return
  178.     :LABEL010
  179.     End
  180.  
  181. ;------------------------------------------------------------------------------
  182. ;
  183. ; Usage report (before postprocessing)
  184. ;
  185. ; ■ Statements used :
  186. ;
  187. ;    1       End
  188. ;    2       Cls
  189. ;    4       Wait
  190. ;    30      Goto 
  191. ;    41      Let 
  192. ;    8       PrintLn 
  193. ;    17      If 
  194. ;    1       FOpen 
  195. ;    1       FAppend 
  196. ;    2       FClose 
  197. ;    2       FGet 
  198. ;    2       FPutLn 
  199. ;    1       InputStr 
  200. ;    15      Gosub 
  201. ;    5       Return
  202. ;    3       Inc 
  203. ;    1       Dec 
  204. ;    1       InputText 
  205. ;    2       Call 
  206. ;
  207. ;
  208. ; ■ Functions used :
  209. ;
  210. ;    16      *
  211. ;    2       /
  212. ;    28      +
  213. ;    7       -
  214. ;    12      ==
  215. ;    3       <
  216. ;    2       <=
  217. ;    2       >
  218. ;    2       >=
  219. ;    17      !
  220. ;    2       &&
  221. ;    6       ||
  222. ;    2       Len(
  223. ;    1       Upper()
  224. ;    2       Left()
  225. ;    4       Right()
  226. ;    4       Space()
  227. ;    1       Ferr()
  228. ;    1       InStr()
  229. ;    1       StripAtx()
  230. ;    1       Mask_Num()
  231. ;    1       Mask_File()
  232. ;    1       PPEPath()
  233. ;    2       Exist()
  234. ;    4       I2S()
  235. ;    2       S2I()
  236. ;
  237. ;------------------------------------------------------------------------------
  238. ;
  239. ; Analysis flags : C
  240. ;
  241. ; C - Call child PPE ■ 3
  242. ;     This is usually normal, but may be a tricky way to launch some
  243. ;     sysop-only commands.
  244. ;     ■ Search for : CALL
  245. ;
  246. ;------------------------------------------------------------------------------
  247. ;
  248. ; Postprocessing report
  249. ;
  250. ;    1       For/Next
  251. ;    0       While/EndWhile
  252. ;    10      If/Then or If/Then/Else
  253. ;    1       Select Case
  254. ;
  255. ;------------------------------------------------------------------------------
  256. ;                 AEGiS Corp - Break the routines, code against the machines!
  257. ;------------------------------------------------------------------------------
  258.