home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PCBOARD / WONDIR15.ZIP / WONDIR1.PPE (.txt) < prev   
PCBoard Programming Language Executable  |  1994-02-22  |  10KB  |  399 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.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Integer  INTEGER001
  23.     Integer  INTEGER002
  24.     Integer  INTEGER003
  25.     Integer  INTEGER004
  26.     Integer  INTEGER005
  27.     Integer  INTEGER006
  28.     Integer  INTEGER007
  29.     Integer  INTEGER008
  30.     Integer  INTEGER009
  31.     Integer  INTEGER010
  32.     Integer  INTEGER011
  33.     Integer  INTEGER012
  34.     Integer  INTEGER013
  35.     String   STRING001
  36.     String   STRING002
  37.     String   STRING003
  38.     String   STRING004
  39.     String   STRING005
  40.     String   STRING006
  41.     String   STRING007
  42.     String   STRING008
  43.     String   STRING009
  44.     String   STRING010
  45.     String   STRING011
  46.     String   STRING012
  47.     String   TSTRING013(1)
  48.     String   TSTRING014(20)
  49.     String   STRING015
  50.  
  51. ;------------------------------------------------------------------------------
  52.  
  53.     If (GrafMode() == "R") BOOLEAN001 = 1
  54.     STRING001 = TokenStr()
  55.     If ((STRING001 == Chr(70) + Chr(73) + Chr(78) + Chr(83) + Chr(84) + Chr(69) + Chr(82)) || (STRING001 == Chr(82) + Chr(65) + Chr(78) + Chr(68) + Chr(89))) Then
  56.         If (STRING001 == Chr(82) + Chr(65) + Chr(78) + Chr(68) + Chr(89)) BOOLEAN002 = 1
  57.         If (STRING001 == Chr(70) + Chr(73) + Chr(78) + Chr(83) + Chr(84) + Chr(69) + Chr(82)) BOOLEAN002 = 0
  58.     Else
  59.         If (BOOLEAN001) MPrintLn "!|*"
  60.         Cls
  61.         AnsiPos 15, 10
  62.         Color 14
  63.         SPrintLn "This ppe (WONDIR1.PPE) requires WONDIR.PPE v.1.5.0"
  64.         Newline
  65.         AnsiPos 11, GetY()
  66.         Color 3
  67.         SPrintLn "You may download the shareware version of WONDIR by calling"
  68.         AnsiPos 22, GetY()
  69.         SPrintLn "Randy's Home Project @ (904) 223-4060"
  70.         Newlines 3
  71.         Color 7
  72.         SPrintLn "this message does NOT display to the caller"
  73.         SPrintLn "their blank screen has the following prompt on line 12."
  74.         Newline
  75.         Wait
  76.         DefColor
  77.         End
  78.     Endif
  79.     STRING002 = "U" + Chr(78) + "R" + Chr(69) + "G" + Chr(73) + "S" + Chr(84) + "E" + Chr(82) + "E" + Chr(68)
  80.     STRING002 = STRING002 + Space(10) + Chr(87) + "O" + Chr(78) + "D" + Chr(73) + "R " + Chr(118) + ".1." + Chr(53) + Space(10) + STRING002
  81.     If (BOOLEAN002) STRING003 = ReadLine(PCBDat(), 94)
  82.     If (BOOLEAN002 && Exist(PPEPath() + "wondir.cfg")) Then
  83.         If (Trim(ReadLine(PPEPath() + "wondir.cfg", 1), " ") > "") STRING003 = Trim(Left(ReadLine(PPEPath() + "wondir.cfg", 1), 65), " ")
  84.         STRING004 = Left(ReadLine(PPEPath() + "wondir.cfg", 2), 4)
  85.         STRING005 = Left(ReadLine(PPEPath() + "wondir.cfg", 3), 4)
  86.         STRING006 = Left(ReadLine(PPEPath() + "wondir.cfg", 4), 4)
  87.         STRING007 = Left(ReadLine(PPEPath() + "wondir.cfg", 5), 4)
  88.         STRING008 = Left(ReadLine(PPEPath() + "wondir.cfg", 6), 4)
  89.     Else
  90.         STRING004 = "@X2E"
  91.         STRING005 = "@X20"
  92.         STRING006 = "@X2F"
  93.         STRING007 = "@X2E"
  94.         STRING008 = "@X20"
  95.     Endif
  96.     INTEGER001 = (80 - Len(STRING003)) / 2
  97.     STRING009 = "@POS:" + String(INTEGER001) + "@"
  98.     STRING010 = ReadLine(ReadLine(PCBDat(), 31), CurConf() * 33 + 1)
  99.     STRING012 = ReadLine(ReadLine(PCBDat(), 31), CurConf() * 33 + 31)
  100.     INTEGER002 = FileInf(STRING012, 4) / 96 + 1
  101.     BOOLEAN003 = (INTEGER002 > 20)
  102.     If (BOOLEAN001) Then
  103.         MPrintLn "!|1K|*|1B000002007C030F000F080200000F07000000|1U0200HN4F0000<><>|w000K270O10"
  104.         MPrintLn "!|=00000001|c08|L0E0XHB0X|c0F|L0E0YHB0Y|Y01000100|c08|@0P0AAvailable File Areas|c0E|@0O09Available File Areas"
  105.         MPrintLn "!|1B0000020PWG01000F0F080200000707000000|1U025THN670000<><>"
  106.         MPrintLn "!|Y08000300|c02|@0O6DFile Commands|Y00000100|c0E|@1N7K", STRING010, "|@2H84Conference"
  107.         MPrintLn "!|1B0000020PVK030F000F080200000F07000000|1U6Y6IHJ950000<><>"
  108.         If (!BOOLEAN002) MPrintLn "!|c00|Y00000100|@2I5X", STRING002, "|c05|@2H5W", STRING002
  109.         If (BOOLEAN003) Gosub LABEL009
  110.     Else
  111.         If (BOOLEAN002) Then
  112.             PrintLn "@CLS@@POFF@", STRING005, "▓▓▒▒░░", STRING009, STRING004, STRING003, STRING005, "@POS:75@░░▒▒▓▓@X07"
  113.         Else
  114.             PrintLn "@CLS@@POFF@", STRING005, "▓▓▒▒░░@POS:13@@X25", STRING002, STRING005, "@POS:75@░░▒▒▓▓@X07"
  115.         Endif
  116.         AnsiPos 1, 3
  117.         Print STRING006, "┌──────────────────────────────────────────────────────────────────────────────", STRING005, "┐@X07"
  118.         Print STRING006, "│ ", STRING005, "┌──────────────────────────────────────────────────────────────────────────", STRING006, "┐ ", STRING005, "│@X07"
  119.         Print STRING006, "│ ", STRING005, "│", STRING007, "  Available File Areas - @CONFNAME@ Conference@POS:78@", STRING006, "│ ", STRING005, "│@X07"
  120.         Print STRING006, "│ ", STRING005, "└", STRING006, "──────────────────────────────────────────────────────────────────────────┘ ", STRING005, "│@X07"
  121.         Print STRING006, "│ ", STRING005, "┌──────────────────────────────────────────────────────────────────────────", STRING006, "┐ ", STRING005, "│@X07"
  122.         INTEGER003 = 0
  123.         While ((INTEGER003 < INTEGER002) && (INTEGER003 < 10)) Do
  124.             Print STRING006, "│ ", STRING005, "│", STRING006, "@POS:78@│ ", STRING005, "│@X07"
  125.             Inc INTEGER003
  126.         EndWhile
  127.         Print STRING006, "│ ", STRING005, "└", STRING006, "──────────────────────────────────────────────────────────────────────────┘ ", STRING005, "│"
  128.         Print STRING006, "└", STRING005, "──────────────────────────────────────────────────────────────────────────────┘@X07"
  129.         INTEGER009 = GetY()
  130.     Endif
  131.     Redim TSTRING013, INTEGER002
  132.     FOpen 1, STRING012, 0, 0
  133.     FDefIn 1
  134.     For INTEGER003 = 1 To INTEGER002 - 1
  135.         FSeek 1, (INTEGER003 - 1) * 96 + 60, 0
  136.         FDRead TSTRING013(INTEGER003), 29
  137.     Next
  138.     FClose 1
  139.     TSTRING013(INTEGER003) = "Recent Uploads" + Space(15)
  140.     If (BOOLEAN003) Goto LABEL001
  141.     Redim TSTRING014, INTEGER002
  142.     For INTEGER003 = 1 To INTEGER002
  143.         TSTRING014(INTEGER003) = TSTRING013(INTEGER003)
  144.     Next
  145.     Goto LABEL002
  146.     :LABEL001
  147.     For INTEGER003 = 1 To 20
  148.         TSTRING014(INTEGER003) = TSTRING013(INTEGER003)
  149.     Next
  150.     :LABEL002
  151.     INTEGER006 = 1
  152.     INTEGER005 = 1
  153.     While (INTEGER005 <= INTEGER002) Do
  154.         If (BOOLEAN001) Then
  155.             Newline
  156.             MPrintLn "!|1K|S0102|B0E12H943"
  157.         Endif
  158.         INTEGER004 = 1
  159.         While (TSTRING014(INTEGER004) > "") Do
  160.             If (INTEGER004 == 1) Gosub LABEL004
  161.             If (INTEGER005 == 10) Gosub LABEL006
  162.             If (INTEGER004 == 11) Gosub LABEL005
  163.             If ((INTEGER005 == 30) && !BOOLEAN001) Gosub LABEL007
  164.             If (INTEGER005 < 11) TSTRING014(INTEGER004) = TSTRING014(INTEGER004) + " "
  165.             STRING015 = String(INTEGER005) + " - "
  166.             If (TSTRING014(INTEGER004) == Space(29)) STRING015 = Space(5)
  167.             If (BOOLEAN001) Then
  168.                 MPrintLn "!|c0F|W00|=00000001|Y00000100|@", MegaNum(INTEGER010), MegaNum(INTEGER011), STRING015, TSTRING014(INTEGER004)
  169.                 If (BOOLEAN002) MPrintLn "!|1M", MegaNum(INTEGER012) , MegaNum(INTEGER013) , MegaNum(INTEGER011 - 2) , MegaNum(INTEGER013 + (Len(RTrim(TSTRING014(INTEGER004), " ")) + Len(String(INTEGER005)) + 4) * 8) , MegaNum(INTEGER011 + 8) , "1000000", INTEGER005, "^M"
  170.                 INTEGER011 = INTEGER011 + 10
  171.                 INTEGER012 = INTEGER012 + 1
  172.             Else
  173.                 AnsiPos INTEGER007, INTEGER008
  174.                 PrintLn STRING008, STRING015, TSTRING014(INTEGER004)
  175.                 INTEGER008 = INTEGER008 + 1
  176.             Endif
  177.             INTEGER005 = INTEGER005 + 1
  178.             Inc INTEGER004
  179.         EndWhile
  180.         AnsiPos 1, INTEGER009
  181.         If (BOOLEAN001) Then
  182.             MPrintLn "!|10$SMF$|#|#|#"
  183.             Newline
  184.         Endif
  185.         DefColor
  186.         If (!BOOLEAN003) Gosub LABEL010
  187.         If (INTEGER005 == 21) Then
  188.             If (BOOLEAN001) Gosub LABEL009
  189.             InputStr "(Enter) for next page or (S)top", STRING011, 14, 1, Mask_Alpha(), 32
  190.             If ((STRING011 == "S") || (STRING011 == "s")) Gosub LABEL010
  191.             INTEGER006 = INTEGER006 + 20
  192.             Gosub LABEL008
  193.         ElseIf ((INTEGER005 > 21) && (INTEGER002 - INTEGER005 - 1 > 0)) Then
  194.             If (BOOLEAN001) Gosub LABEL009
  195.             InputStr "(Enter) for next page, (P)revious or (S)top", STRING011, 14, 1, Mask_Alpha(), 32
  196.             If ((STRING011 == "s") || (STRING011 == "S")) Gosub LABEL010
  197.             If ((STRING011 == "p") || (STRING011 == "P")) Then
  198.                 INTEGER005 = INTEGER006 - 20
  199.                 INTEGER006 = INTEGER005
  200.                 Gosub LABEL008
  201.                 Goto LABEL003
  202.             Endif
  203.             INTEGER006 = INTEGER005
  204.             Gosub LABEL008
  205.         Endif
  206.         :LABEL003
  207.         If (INTEGER005 > INTEGER002) Then
  208.             If (BOOLEAN001) Gosub LABEL009
  209.             InputStr "(P)revious page or (Enter) = Stop", STRING011, 14, 1, Mask_Alpha(), 32
  210.             If ((STRING011 == "p") || (STRING011 == "P")) Then
  211.                 INTEGER005 = INTEGER006 - 20
  212.                 INTEGER006 = INTEGER005
  213.                 Gosub LABEL008
  214.             Endif
  215.         Endif
  216.     EndWhile
  217.     Gosub LABEL010
  218.     :LABEL004
  219.     INTEGER010 = 25
  220.     INTEGER011 = 44
  221.     INTEGER012 = 1
  222.     INTEGER013 = 20
  223.     INTEGER007 = 5
  224.     INTEGER008 = 8
  225.     Return
  226.     :LABEL005
  227.     INTEGER010 = 345
  228.     INTEGER013 = INTEGER010 - 5
  229.     INTEGER011 = 44
  230.     INTEGER007 = 40
  231.     INTEGER008 = 8
  232.     Return
  233.     :LABEL006
  234.     INTEGER010 = 17
  235.     INTEGER013 = INTEGER010 - 5
  236.     INTEGER007 = 4
  237.     Return
  238.     :LABEL007
  239.     AnsiPos 4, GetY()
  240.     Print " "
  241.     Return
  242.     :LABEL008
  243.     INTEGER004 = 1
  244.     For INTEGER003 = INTEGER005 To INTEGER005 + 20
  245.         TSTRING014(INTEGER004) = TSTRING013(INTEGER003)
  246.         If (TSTRING014(INTEGER004) == "") TSTRING014(INTEGER004) = Space(29)
  247.         INTEGER004 = INTEGER004 + 1
  248.     Next
  249.     Return
  250.     :LABEL009
  251.     MPrint "!|Y00000100|1B00000201F601000F0F080700020407000000"
  252.     If ((INTEGER005 > 20) && (INTEGER005 < INTEGER002)) Then
  253.         MPrint "|1U7B6QAJ720000<>Next Page<>^M"
  254.     Else
  255.         MPrint "|1U7B6QAJ720000<><>"
  256.     Endif
  257.     If (INTEGER005 > 21) Then
  258.         MPrint "|1U7B77AJ7J0000<>Prev. Page<>P^M"
  259.     Else
  260.         MPrint "|1U7B77AJ7J0000<><>"
  261.     Endif
  262.     MPrint "|1U7B7OAJ800000<><>"
  263.     MPrint "|1U7B85AJ8H0000<><>"
  264.     MPrint "|1U7B8MAJ8Y0000<><>"
  265.     MPrint "|1UAN7ODV800000<><>"
  266.     MPrint "|1UAN85DV8H0000<><>"
  267.     MPrint "|1UAN8MDV8Y0000<><>"
  268.     If (INTEGER005 > 20) Then
  269.         MPrint "|1UDZ6QH7720000<>Stop<>S^M"
  270.     Else
  271.         MPrint "|1UDZ6QH7720000<><>"
  272.     Endif
  273.     MPrint "|1UDZ77H77J0000<><>"
  274.     MPrint "|1UDZ7OH7800000<><>"
  275.     MPrint "|1UDZ85H78H0000<><>"
  276.     MPrint "|1UDZ8MH78Y0000<><>"
  277.     MPrintLn "|#|#|#"
  278.     Return
  279.     :LABEL010
  280.     If (BOOLEAN001 && !Exist(PPEPath() + "rpfflag.ppe")) Then
  281.         Newline
  282.         MPrint "!|10$MKILL$|10$RMF$|10$ETW$"
  283.         MPrint "|Y00000100|1B00000201F601000F0F080700020407000000"
  284.         MPrint "|1U7B6QAJ720000<><>$blip$"
  285.         MPrint "|1U7B77AJ7J0000<><>$blip$"
  286.         MPrint "|1U7B7OAJ800000<>Flag<>FLAG^M"
  287.         MPrint "|1U7B85AJ8H0000<>View<>$RESET$V^M"
  288.         MPrint "|1U7B8MAJ8Y0000<><>$blip$"
  289.         MPrint "|S0102|BAM6NDU7J|c00|@B676Search by:|c0F|@B575Search by:"
  290.         MPrint "|1UAN7ODV800000<>Filename<>L^M"
  291.         MPrint "|1UAN85DV8H0000<>Text<>Z^M"
  292.         MPrint "|1UAN8MDV8Y0000<>Age/Date<>N^M"
  293.         MPrint "|1UDZ6QH7720000<>Relist<>R^M"
  294.         MPrint "|1UDZ77H77J0000<><>$blip$"
  295.         MPrint "|1B00000201F601000F0F080700060407000000"
  296.         MPrint "|1UDZ7OH7800000<>Quit to Main<>$RESET$^M^M"
  297.         MPrint "|1B00000201F601000F0F080700020407000000"
  298.         MPrint "|1UDZ85H78H0000<>Enter<>^M"
  299.         MPrint "|1UDZ8MH78Y0000<>Help\!<>$RESET$H^M"
  300.         MPrintLn "|#|#|#"
  301.     Endif
  302.     End
  303.  
  304. ;------------------------------------------------------------------------------
  305. ;
  306. ; Usage report (before postprocessing)
  307. ;
  308. ; ■ Statements used :
  309. ;
  310. ;    2       End
  311. ;    1       Cls
  312. ;    1       Wait
  313. ;    3       Color 
  314. ;    42      Goto 
  315. ;    71      Let 
  316. ;    9       Print 
  317. ;    3       PrintLn 
  318. ;    46      If 
  319. ;    1       FOpen 
  320. ;    1       FClose 
  321. ;    2       DefColor
  322. ;    3       InputStr 
  323. ;    16      Gosub 
  324. ;    6       Return
  325. ;    2       Inc 
  326. ;    5       Newline
  327. ;    1       Newlines 
  328. ;    7       AnsiPos 
  329. ;    5       SPrintLn 
  330. ;    35      MPrint 
  331. ;    13      MPrintLn 
  332. ;    1       FSeek 
  333. ;    1       FDefIn 
  334. ;    1       FDRead 
  335. ;    2       Redim 
  336. ;
  337. ;
  338. ; ■ Functions used :
  339. ;
  340. ;    4       *
  341. ;    2       /
  342. ;    77      +
  343. ;    11      -
  344. ;    20      ==
  345. ;    8       <
  346. ;    5       <=
  347. ;    9       >
  348. ;    8       >=
  349. ;    28      !
  350. ;    14      &&
  351. ;    9       ||
  352. ;    3       Len(
  353. ;    6       Left()
  354. ;    6       Space()
  355. ;    35      Chr()
  356. ;    1       RTrim()
  357. ;    2       Trim()
  358. ;    3       String()
  359. ;    3       Mask_Alpha()
  360. ;    2       CurConf()
  361. ;    3       PCBDat()
  362. ;    9       PPEPath()
  363. ;    12      ReadLine()
  364. ;    2       Exist()
  365. ;    1       TokenStr()
  366. ;    4       GetY()
  367. ;    1       GrafMode()
  368. ;    1       FileInf()
  369. ;    7       MegaNum()
  370. ;
  371. ;------------------------------------------------------------------------------
  372. ;
  373. ; Analysis flags : Md
  374. ;
  375. ; M - Send text to modem only ■ 4
  376. ;     Some informations are sent only to the modem, not to the local
  377. ;     screen, this is a well known way to make stealth backdoors, Check!
  378. ;     ■ Search for : SENDMODEM, MPRINT, MPRINTLN
  379. ;
  380. ; d - Access PCBOARD.DAT ■ 2
  381. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  382. ;     for many PPE so they can find various informations on the system
  383. ;     (system paths, max number of lines in messages, ...) but it may also
  384. ;     be a way to gather vital informations.
  385. ;     ■ Search for : PCBDAT()
  386. ;
  387. ;------------------------------------------------------------------------------
  388. ;
  389. ; Postprocessing report
  390. ;
  391. ;    4       For/Next
  392. ;    3       While/EndWhile
  393. ;    16      If/Then or If/Then/Else
  394. ;    0       Select Case
  395. ;
  396. ;------------------------------------------------------------------------------
  397. ;                 AEGiS Corp - Break the routines, code against the machines!
  398. ;------------------------------------------------------------------------------
  399.