home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / S / SCUMN10.ZIP / PWAFLAG.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-06-13  |  4KB  |  359 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.     String   STRING001
  22.     String   STRING002
  23.     String   STRING003
  24.     String   STRING004
  25.     String   STRING005
  26.     String   STRING006
  27.     String   STRING007
  28.     String   TSTRING008(23)
  29.     String   STRING009
  30.     String   STRING010
  31.     String   STRING011
  32.     String   STRING012
  33.     Byte     BYTE001
  34.     Byte     BYTE002
  35.     Byte     BYTE003
  36.  
  37. ;------------------------------------------------------------------------------
  38.  
  39.     If (AnsiOn()) Goto LABEL001
  40.     DispFile PPEPath() + "FLAGOLD", 4
  41.     End
  42.     :LABEL001
  43.     STRING004 = Chr(8)
  44.     STRING005 = Chr(127)
  45.     STRING006 = Chr(13)
  46.     STRING007 = Chr(27)
  47.     BYTE001 = 0
  48.     STRING001 = ""
  49.     STRING012 = PPEPath() + "FLAGFV.DAT"
  50.     STRING011 = ReadLine(STRING012, 1)
  51.     STRING003 = ReadLine(STRING011, 41)
  52.     RestScrn
  53.     ClrEol
  54.     Gosub LABEL012
  55.     Gosub LABEL016
  56.     :LABEL002
  57.     If (BOOLEAN001) Goto LABEL009
  58.     STRING002 = Inkey()
  59.     If (STRING002 <> "") Then
  60.         If ((BYTE001 == 0) && (STRING002 == " ")) Then
  61.             BYTE002 = GetY()
  62.             BYTE003 = 0
  63.             Print STRING006
  64.             ClrEol
  65.             Print STRING007 + "[s"
  66.             DispFile PPEPath() + "FLAGBAR", 1 + 4
  67.             Print STRING006
  68.             Gosub LABEL013
  69.             If (STRING009 <> "") Then
  70.                 While ((((STRING002 <> STRING007) && (STRING002 <> STRING006)) && (Upper(STRING002) <> "V")) && (Upper(STRING002) <> "N")) Do
  71.                     STRING002 = Inkey()
  72.                     If (STRING002 == " ") Then
  73.                         Gosub LABEL015
  74.                         Gosub LABEL013
  75.                         If (STRING009 == "") Then
  76.                             Gosub LABEL011
  77.                             Gosub LABEL012
  78.                             Goto LABEL008
  79.                         Endif
  80.                     Endif
  81.                 EndWhile
  82.                 Gosub LABEL015
  83.                 Gosub LABEL011
  84.                 If (STRING002 == STRING006) Then
  85.                     SaveScrn
  86.                     KbdStuff "F " + STRING009 + STRING006
  87.                     End
  88.                     Goto LABEL004
  89.                 Endif
  90.                 If (Upper(STRING002) == "V") Then
  91.                     If (Exist(STRING003)) Then
  92.                         FCreate 1, PPEPath() + "FILE.$$$", 2, 0
  93.                         FPutLn 1, "!" + STRING003 + " " + STRING009
  94.                         FClose 1
  95.                         DispFile PPEPath() + "FILE.$$$", 0
  96.                         Delete "C:\PCB\PPE\FV\FILE.$$$"
  97.                         End
  98.                         Goto LABEL003
  99.                     Endif
  100.                     PrintLn "** Error, you cannot view files because FLAG.PPE cannont fine"
  101.                     PrintLn "** either FV.DAT or the PWAFV Cnf file.  Make sure the sysop"
  102.                     Print "** coppied the DAT file to the "
  103.                     PrintLn PPEPath() + " directory"
  104.                     End
  105.                     :LABEL003
  106.                     KbdStuff "V " + STRING009 + STRING006
  107.                     Goto LABEL004
  108.                 Endif
  109.                 If (Upper(STRING002) == "N") Then
  110.                     SaveScrn
  111.                     GetUser
  112.                     If (ReadLine(ReadLine(PPEPath() + "FLAG.CFG", PcbNode()) + "FNUKE." + String(PcbNode()), 1) <> U_Name()) Then
  113.                         If (Exist(ReadLine(PPEPath() + "FLAG.CFG", PcbNode())) + "FNUKE." + String(PcbNode())) Delete ReadLine(PPEPath() + "FLAG.CFG", 1) + "FNUKE." + String(PcbNode())
  114.                         FAppend 6, ReadLine(PPEPath() + "FLAG.CFG", PcbNode()) + "FNUKE." + String(PcbNode()), 2, 0
  115.                         FPutLn 6, U_Name()
  116.                         FClose 6
  117.                     Endif
  118.                     FAppend 6, ReadLine(PPEPath() + "FLAG.CFG", PcbNode()) + "FNUKE." + String(PcbNode()), 2, 0
  119.                     FPutLn 6, STRING009
  120.                     FClose 6
  121.                     PrintLn "@X0FF@X07i@X08le Flagged for Nukeing! Don't forget to run NUKE@X07R@X0F!"
  122.                     Delay 25
  123.                     Newline
  124.                     RestScrn
  125.                 Endif
  126.                 :LABEL004
  127.                 Goto LABEL005
  128.             Endif
  129.             Gosub LABEL011
  130.             :LABEL005
  131.             Gosub LABEL012
  132.             Goto LABEL008
  133.             Goto LABEL007
  134.         Endif
  135.         If ((STRING002 == STRING004) || (STRING002 == STRING005)) Then
  136.             If (BYTE001 > 0) Then
  137.                 Print STRING004 + " "
  138.                 BYTE001 = BYTE001 - 1
  139.                 STRING001 = Left(STRING001, BYTE001)
  140.                 Goto LABEL006
  141.             Endif
  142.             Goto LABEL008
  143.             :LABEL006
  144.             Goto LABEL007
  145.         Endif
  146.         If (STRING002 == STRING006) Then
  147.             BOOLEAN001 = 1
  148.             Goto LABEL007
  149.         Endif
  150.         If ((Len(STRING002) > 1) || (STRING002 < " ")) Then
  151.             Goto LABEL008
  152.             Goto LABEL007
  153.         Endif
  154.         If ((BYTE001 == 0) && ((STRING002 == "?") || (Upper(STRING002) == "H"))) Then
  155.             SaveScrn
  156.             Newline
  157.             DispFile PPEPath() + "FLAGHLP", 1 + 4
  158.             Newline
  159.             Wait
  160.             RestScrn
  161.             Goto LABEL008
  162.             Goto LABEL007
  163.         Endif
  164.         If ((STRING002 >= " ") && (BYTE001 < 80)) Then
  165.             STRING001 = STRING001 + STRING002
  166.             BYTE001 = BYTE001 + 1
  167.         Endif
  168.         :LABEL007
  169.         Print STRING002
  170.     Endif
  171.     :LABEL008
  172.     Goto LABEL002
  173.     :LABEL009
  174.     STRING001 = RTrim(STRING001, " ")
  175.     If (Upper(Left(STRING001, 1)) == "V") Then
  176.         If (Len(STRING001) == 1) Then
  177.             ClrEol
  178.             STRING009 = ""
  179.             PromptStr 240, STRING009, 12, Mask_File(), 2
  180.             STRING009 = RTrim(STRING009, " ")
  181.             If (Len(STRING009) == 0) Then
  182.                 ClrEol
  183.                 KbdStuff STRING006
  184.                 End
  185.             Endif
  186.             Newline
  187.             STRING001 = "V " + STRING009
  188.             SaveScrn
  189.             Goto LABEL010
  190.         Endif
  191.         If (Len(STRING001) >= 3) Then
  192.             ClrEol
  193.             SaveScrn
  194.             Goto LABEL010
  195.         Endif
  196.         KbdStuff STRING006
  197.         End
  198.     Endif
  199.     :LABEL010
  200.     KbdStuff STRING001 + STRING006
  201.     End
  202.     :LABEL011
  203.     Print STRING007 + "[u"
  204.     ClrEol
  205.     Return
  206.     :LABEL012
  207.     DispFile PPEPath() + "FLAGNEW", 4
  208.     DefColor
  209.     Return
  210.     :LABEL013
  211.     If (BOOLEAN002) Then
  212.         BYTE003 = 0
  213.         STRING002 = ""
  214.         While (BYTE003 == 0) Do
  215.             STRING002 = Inkey()
  216.             BYTE003 = Asc(STRING002)
  217.             If ((BYTE003 >= 129) && (BYTE003 <= 151)) Then
  218.                 BYTE003 = BYTE003 - 128
  219.                 If (TSTRING008(BYTE003) <> "") Then
  220.                     Gosub LABEL014
  221.                     STRING009 = TSTRING008(BYTE003)
  222.                     Return
  223.                     Continue
  224.                 Endif
  225.                 BYTE003 = 0
  226.             Endif
  227.         EndWhile
  228.     Else
  229.         While (BYTE003 < BYTE002) Do
  230.             BYTE003 = BYTE003 + 1
  231.             If (TSTRING008(BYTE003) <> "") Then
  232.                 Gosub LABEL014
  233.                 STRING009 = TSTRING008(BYTE003)
  234.                 Return
  235.             Endif
  236.         EndWhile
  237.     Endif
  238.     STRING009 = ""
  239.     Return
  240.     :LABEL014
  241.     Print STRING007 + "[u" + STRING007 + "[" + String(BYTE002 - BYTE003) + "A"
  242.     STRING010 = ScrText(1, BYTE003, 13, 1)
  243.     Color 112
  244.     Print TSTRING008(BYTE003) + STRING006
  245.     Return
  246.     :LABEL015
  247.     Print STRING010 + STRING006
  248.     Return
  249.     :LABEL016
  250.     If (GrafMode() == "R") Then
  251.         BOOLEAN002 = 1
  252.     Endif
  253.     BYTE003 = 1
  254.     While (BYTE003 > 0) Do
  255.         ScrFile BYTE003, STRING009
  256.         If (BYTE003 <> 0) Then
  257.             TSTRING008(BYTE003) = STRING009
  258.             If (BOOLEAN002) Then
  259.                 MouseReg 0, 1, BYTE003, 13, BYTE003 + 1, 8, 8, 1, 0, " " + Chr(BYTE003 + 128)
  260.             Endif
  261.             Inc BYTE003
  262.         Endif
  263.     EndWhile
  264.     If (BOOLEAN002) Then
  265.         MPrint "!|#|#|#" + STRING006 + Chr(10)
  266.     Endif
  267.     Return
  268.  
  269. ;------------------------------------------------------------------------------
  270. ;
  271. ; Usage report (before postprocessing)
  272. ;
  273. ; ■ Statements used :
  274. ;
  275. ;    7       End
  276. ;    6       ClrEol
  277. ;    1       Wait
  278. ;    1       Color 
  279. ;    58      Goto 
  280. ;    36      Let 
  281. ;    10      Print 
  282. ;    4       PrintLn 
  283. ;    35      If 
  284. ;    5       DispFile 
  285. ;    1       FCreate 
  286. ;    2       FAppend 
  287. ;    3       FClose 
  288. ;    3       FPutLn 
  289. ;    1       GetUser
  290. ;    1       DefColor
  291. ;    2       Delete 
  292. ;    13      Gosub 
  293. ;    8       Return
  294. ;    1       PromptStr 
  295. ;    1       Delay 
  296. ;    1       Inc 
  297. ;    4       Newline
  298. ;    5       KbdStuff 
  299. ;    5       SaveScrn
  300. ;    3       RestScrn
  301. ;    1       MPrint 
  302. ;    1       MouseReg 
  303. ;    1       ScrFile 
  304. ;
  305. ;
  306. ; ■ Functions used :
  307. ;
  308. ;    52      +
  309. ;    3       -
  310. ;    18      ==
  311. ;    10      <>
  312. ;    3       <
  313. ;    1       <=
  314. ;    3       >
  315. ;    3       >=
  316. ;    34      !
  317. ;    7       &&
  318. ;    3       ||
  319. ;    4       Len(
  320. ;    6       Upper()
  321. ;    2       Left()
  322. ;    6       Chr()
  323. ;    1       Asc()
  324. ;    2       RTrim()
  325. ;    2       U_Name()
  326. ;    3       Inkey()
  327. ;    6       String()
  328. ;    1       Mask_File()
  329. ;    13      PPEPath()
  330. ;    9       PcbNode()
  331. ;    8       ReadLine()
  332. ;    2       Exist()
  333. ;    1       AnsiOn()
  334. ;    1       GetY()
  335. ;    1       GrafMode()
  336. ;    1       ScrText()
  337. ;
  338. ;------------------------------------------------------------------------------
  339. ;
  340. ; Analysis flags : M
  341. ;
  342. ; M - Send text to modem only ■ 4
  343. ;     Some informations are sent only to the modem, not to the local
  344. ;     screen, this is a well known way to make stealth backdoors, Check!
  345. ;     ■ Search for : SENDMODEM, MPRINT, MPRINTLN
  346. ;
  347. ;------------------------------------------------------------------------------
  348. ;
  349. ; Postprocessing report
  350. ;
  351. ;    0       For/Next
  352. ;    4       While/EndWhile
  353. ;    28      If/Then or If/Then/Else
  354. ;    0       Select Case
  355. ;
  356. ;------------------------------------------------------------------------------
  357. ;                 AEGiS Corp - Break the routines, code against the machines!
  358. ;------------------------------------------------------------------------------
  359.