home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PCBOARD / TAPEFLAG.ZIP / FLAG30.ZIP / FLAG.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1993-12-18  |  3KB  |  309 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")) 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.                     SaveScrn
  85.                     KbdStuff "V " + STRING008 + STRING005
  86.                     End
  87.                 Endif
  88.                 :LABEL003
  89.                 Goto LABEL004
  90.             Endif
  91.             Gosub LABEL010
  92.             :LABEL004
  93.             Gosub LABEL011
  94.             Goto LABEL007
  95.             Goto LABEL006
  96.         Endif
  97.         If ((STRING002 == STRING003) || (STRING002 == STRING004)) Then
  98.             If (BYTE001 > 0) Then
  99.                 Print STRING003 + " "
  100.                 BYTE001 = BYTE001 - 1
  101.                 STRING001 = Left(STRING001, BYTE001)
  102.                 Goto LABEL005
  103.             Endif
  104.             Goto LABEL007
  105.             :LABEL005
  106.             Goto LABEL006
  107.         Endif
  108.         If (STRING002 == STRING005) Then
  109.             BOOLEAN001 = 1
  110.             Goto LABEL006
  111.         Endif
  112.         If ((Len(STRING002) > 1) || (STRING002 < " ")) Then
  113.             Goto LABEL007
  114.             Goto LABEL006
  115.         Endif
  116.         If ((BYTE001 == 0) && ((STRING002 == "?") || (Upper(STRING002) == "H"))) Then
  117.             SaveScrn
  118.             Newline
  119.             DispFile PPEPath() + "FLAGHLP", 1 + 4
  120.             Newline
  121.             Wait
  122.             RestScrn
  123.             Goto LABEL007
  124.             Goto LABEL006
  125.         Endif
  126.         If ((STRING002 >= " ") && (BYTE001 < 80)) Then
  127.             STRING001 = STRING001 + STRING002
  128.             BYTE001 = BYTE001 + 1
  129.         Endif
  130.         :LABEL006
  131.         Print STRING002
  132.     Endif
  133.     :LABEL007
  134.     Goto LABEL002
  135.     :LABEL008
  136.     STRING001 = RTrim(STRING001, " ")
  137.     If (Upper(Left(STRING001, 1)) == "V") Then
  138.         If (Len(STRING001) == 1) Then
  139.             ClrEol
  140.             STRING008 = ""
  141.             PromptStr 240, STRING008, 12, Mask_File(), 2
  142.             STRING008 = RTrim(STRING008, " ")
  143.             If (Len(STRING008) == 0) Then
  144.                 ClrEol
  145.                 KbdStuff STRING005
  146.                 End
  147.             Endif
  148.             Newline
  149.             STRING001 = "V " + STRING008
  150.             SaveScrn
  151.             Goto LABEL009
  152.         Endif
  153.         If (Len(STRING001) >= 3) Then
  154.             ClrEol
  155.             SaveScrn
  156.             Goto LABEL009
  157.         Endif
  158.         KbdStuff STRING005
  159.         End
  160.     Endif
  161.     :LABEL009
  162.     KbdStuff STRING001 + STRING005
  163.     End
  164.     :LABEL010
  165.     Print STRING006 + "[u"
  166.     ClrEol
  167.     Return
  168.     :LABEL011
  169.     DispFile PPEPath() + "FLAGNEW", 4
  170.     DefColor
  171.     Return
  172.     :LABEL012
  173.     If (BOOLEAN002) Then
  174.         BYTE003 = 0
  175.         STRING002 = ""
  176.         While (BYTE003 == 0) Do
  177.             STRING002 = Inkey()
  178.             BYTE003 = Asc(STRING002)
  179.             If ((BYTE003 >= 129) && (BYTE003 <= 151)) Then
  180.                 BYTE003 = BYTE003 - 128
  181.                 If (TSTRING007(BYTE003) <> "") Then
  182.                     Gosub LABEL013
  183.                     STRING008 = TSTRING007(BYTE003)
  184.                     Return
  185.                     Continue
  186.                 Endif
  187.                 BYTE003 = 0
  188.             Endif
  189.         EndWhile
  190.     Else
  191.         While (BYTE003 < BYTE002) Do
  192.             BYTE003 = BYTE003 + 1
  193.             If (TSTRING007(BYTE003) <> "") Then
  194.                 Gosub LABEL013
  195.                 STRING008 = TSTRING007(BYTE003)
  196.                 Return
  197.             Endif
  198.         EndWhile
  199.     Endif
  200.     STRING008 = ""
  201.     Return
  202.     :LABEL013
  203.     Print STRING006 + "[u" + STRING006 + "[" + String(BYTE002 - BYTE003) + "A"
  204.     STRING009 = ScrText(1, BYTE003, 13, 1)
  205.     Color 112
  206.     Print TSTRING007(BYTE003) + STRING005
  207.     Return
  208.     :LABEL014
  209.     Print STRING009 + STRING005
  210.     Return
  211.     :LABEL015
  212.     If (GrafMode() == "R") Then
  213.         BOOLEAN002 = 1
  214.     Endif
  215.     BYTE003 = 1
  216.     While (BYTE003 > 0) Do
  217.         ScrFile BYTE003, STRING008
  218.         If (BYTE003 <> 0) Then
  219.             TSTRING007(BYTE003) = STRING008
  220.             If (BOOLEAN002) Then
  221.                 MouseReg 0, 1, BYTE003, 13, BYTE003 + 1, 8, 8, 1, 0, " " + Chr(BYTE003 + 128)
  222.             Endif
  223.             Inc BYTE003
  224.         Endif
  225.     EndWhile
  226.     If (BOOLEAN002) Then
  227.         MPrint "!|#|#|#" + STRING005 + Chr(10)
  228.     Endif
  229.     Return
  230.  
  231. ;------------------------------------------------------------------------------
  232. ;
  233. ; Usage report (before postprocessing)
  234. ;
  235. ; ■ Statements used :
  236. ;
  237. ;    6       End
  238. ;    6       ClrEol
  239. ;    1       Wait
  240. ;    1       Color 
  241. ;    53      Goto 
  242. ;    33      Let 
  243. ;    9       Print 
  244. ;    31      If 
  245. ;    4       DispFile 
  246. ;    1       DefColor
  247. ;    13      Gosub 
  248. ;    8       Return
  249. ;    1       PromptStr 
  250. ;    1       Inc 
  251. ;    3       Newline
  252. ;    5       KbdStuff 
  253. ;    4       SaveScrn
  254. ;    2       RestScrn
  255. ;    1       MPrint 
  256. ;    1       MouseReg 
  257. ;    1       ScrFile 
  258. ;
  259. ;
  260. ; ■ Functions used :
  261. ;
  262. ;    30      +
  263. ;    3       -
  264. ;    17      ==
  265. ;    8       <>
  266. ;    3       <
  267. ;    1       <=
  268. ;    3       >
  269. ;    3       >=
  270. ;    31      !
  271. ;    6       &&
  272. ;    3       ||
  273. ;    4       Len(
  274. ;    4       Upper()
  275. ;    2       Left()
  276. ;    6       Chr()
  277. ;    1       Asc()
  278. ;    2       RTrim()
  279. ;    3       Inkey()
  280. ;    1       String()
  281. ;    1       Mask_File()
  282. ;    4       PPEPath()
  283. ;    1       AnsiOn()
  284. ;    1       GetY()
  285. ;    1       GrafMode()
  286. ;    1       ScrText()
  287. ;
  288. ;------------------------------------------------------------------------------
  289. ;
  290. ; Analysis flags : M
  291. ;
  292. ; M - Send text to modem only ■ 4
  293. ;     Some informations are sent only to the modem, not to the local
  294. ;     screen, this is a well known way to make stealth backdoors, Check!
  295. ;     ■ Search for : SENDMODEM, MPRINT, MPRINTLN
  296. ;
  297. ;------------------------------------------------------------------------------
  298. ;
  299. ; Postprocessing report
  300. ;
  301. ;    0       For/Next
  302. ;    4       While/EndWhile
  303. ;    25      If/Then or If/Then/Else
  304. ;    0       Select Case
  305. ;
  306. ;------------------------------------------------------------------------------
  307. ;                 AEGiS Corp - Break the routines, code against the machines!
  308. ;------------------------------------------------------------------------------
  309.