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