home *** CD-ROM | disk | FTP | other *** search
/ Groovy Bytes: Behind the Moon / groovybytes.iso / GROOVY / PPE / PAIN / CNC_CHAT.ZIP / CNCCHAT!.PPE (.txt) < prev    next >
Encoding:
PCBoard Programming Language Executable  |  1995-06-11  |  5.6 KB  |  348 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 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Integer  INTEGER001
  22.     Integer  INTEGER002
  23.     Integer  INTEGER003
  24.     Integer  INTEGER004
  25.     Integer  INTEGER005
  26.     Integer  INTEGER006
  27.     Integer  INTEGER007
  28.     Integer  INTEGER008
  29.     Integer  INTEGER009
  30.     Integer  INTEGER010
  31.     Integer  INTEGER011
  32.     Integer  INTEGER012
  33.     Integer  INTEGER013
  34.     Integer  INTEGER014
  35.     Integer  INTEGER015
  36.     Integer  INTEGER016
  37.     Integer  INTEGER017
  38.     String   STRING001
  39.     String   STRING002
  40.     String   STRING003
  41.     String   STRING004
  42.     String   TSTRING005(25)
  43.     String   TSTRING006(25)
  44.     String   STRING007
  45.     String   STRING008
  46.     String   STRING009
  47.     String   STRING010
  48.     String   STRING011
  49.  
  50. ;------------------------------------------------------------------------------
  51.  
  52.     AnsiPos 1, 23
  53.     SaveScrn
  54.     If (Exist(PPEPath() + "cncchat." + I2S(PcbNode(), 10))) Then
  55.         FAppend 2, PPEPath() + "cncchat." + I2S(PcbNode(), 10), 1, 0
  56.     Else
  57.         FOpen 2, PPEPath() + "cncchat." + I2S(PcbNode(), 10), 1, 0
  58.     Endif
  59.     STRING010 = Time()
  60.     GetUser
  61.     FPutLn 2
  62.     FPutLn 2, "USER       : " + U_Name()
  63.     FPutLn 2, "L0CATi0N   : " + U_City
  64.     FPutLn 2
  65.     STRING011 = Date()
  66.     FPutLn 2, "DATE       : " + STRING011
  67.     FPutLn 2, "STARTED AT : " + STRING010
  68.     FPutLn 2, "──────────────────────────────────────────────────────────────────────────────"
  69.     INTEGER002 = S2I(Left(ReadLine(PPEPath() + "cncchat!.cfg", 1), 1), 10)
  70.     STRING002 = Upper(Left(ReadLine(PPEPath() + "cncchat!.cfg", 2), 1))
  71.     BOOLEAN002 = (Upper(Left(ReadLine(PPEPath() + "cncchat!.cfg", 3), 1)) == "Y")
  72.     STRING007 = "                                                                                "
  73.     If (STRING002 == "Y") Then
  74.         STRING004 = I2S(Random(INTEGER002 - 1) + 1, 10)
  75.     Endif
  76.     If (STRING002 <> "Y") STRING004 = STRING002
  77.     :LABEL001
  78.     Print "@CLS@@POFF@"
  79.     DispFile PPEPath() + "cncchat" + STRING004 + ".pcb", 1
  80.     AnsiPos 1, 1
  81.     FOpen 1, PPEPath() + "cncchat" + STRING004 + ".cfg", 0, 0
  82.     FGet 1, INTEGER004
  83.     FGet 1, INTEGER005
  84.     FGet 1, INTEGER006
  85.     FGet 1, INTEGER007
  86.     FGet 1, INTEGER008
  87.     FGet 1, INTEGER009
  88.     FGet 1, INTEGER010
  89.     FGet 1, INTEGER011
  90.     FGet 1, STRING008
  91.     FGet 1, STRING009
  92.     FClose 1
  93.     For INTEGER003 = 1 To 23
  94.         TSTRING006(INTEGER003) = ""
  95.         TSTRING005(INTEGER003) = ""
  96.     Next
  97.     INTEGER012 = INTEGER004
  98.     INTEGER013 = INTEGER005
  99.     INTEGER014 = INTEGER008
  100.     INTEGER015 = INTEGER009
  101.     INTEGER017 = 1
  102.     INTEGER016 = 1
  103.     Goto LABEL004
  104.     :LABEL002
  105.     BOOLEAN001 = 1
  106.     If (Len(TSTRING005(INTEGER017)) < INTEGER006 - INTEGER004) Then
  107.         TSTRING005(INTEGER017) = TSTRING005(INTEGER017) + STRING003
  108.         AnsiPos INTEGER012, INTEGER013
  109.         Print STRING008 + STRING003
  110.         Inc INTEGER012
  111.     Else
  112.         FPutLn 2, "S : " + TSTRING005(INTEGER017)
  113.         Inc INTEGER017
  114.         Inc INTEGER013
  115.         If (INTEGER013 > INTEGER007) Then
  116.             For INTEGER003 = 1 To INTEGER017 - 1
  117.                 TSTRING005(INTEGER003) = TSTRING005(INTEGER003 + 1)
  118.                 AnsiPos INTEGER004, INTEGER005 + INTEGER003 - 1
  119.                 Print TSTRING005(INTEGER003 + 1) + Left(STRING007, INTEGER006 - INTEGER004 - Len(TSTRING005(INTEGER003)))
  120.             Next
  121.             INTEGER013 = INTEGER007
  122.             Dec INTEGER017
  123.         Endif
  124.         INTEGER012 = INTEGER004
  125.     Endif
  126.     Goto LABEL004
  127.     :LABEL003
  128.     BOOLEAN001 = 0
  129.     If (Len(TSTRING006(INTEGER016)) < INTEGER010 - INTEGER008) Then
  130.         TSTRING006(INTEGER016) = TSTRING006(INTEGER016) + STRING001
  131.         AnsiPos INTEGER014, INTEGER015
  132.         Print STRING009 + STRING001
  133.         Inc INTEGER014
  134.     Else
  135.         FPutLn 2, "U : " + TSTRING006(INTEGER016)
  136.         Inc INTEGER016
  137.         Inc INTEGER015
  138.         If (INTEGER015 > INTEGER011) Then
  139.             For INTEGER003 = 1 To INTEGER016 - 1
  140.                 TSTRING006(INTEGER003) = TSTRING006(INTEGER003 + 1)
  141.                 AnsiPos INTEGER008, INTEGER009 + INTEGER003 - 1
  142.                 Print TSTRING006(INTEGER003 + 1) + Left(STRING007, INTEGER010 - INTEGER008 - Len(TSTRING006(INTEGER003)))
  143.             Next
  144.             INTEGER015 = INTEGER011
  145.             Dec INTEGER016
  146.         Endif
  147.         INTEGER014 = INTEGER008
  148.     Endif
  149.     :LABEL004
  150.     If (BOOLEAN001) AnsiPos INTEGER012, INTEGER013
  151.     If (!BOOLEAN001) AnsiPos INTEGER014, INTEGER015
  152.     :LABEL005
  153.     STRING003 = KInkey()
  154.     STRING001 = MInkey()
  155.     If ((STRING003 == "") && (STRING001 == "")) Goto LABEL005
  156.     If ((STRING003 == Chr(27)) || ((STRING001 == Chr(27)) && BOOLEAN002)) Goto LABEL010
  157.     If (STRING003 == Chr(9)) Then
  158.         FPutLn 2, "** SYS0P CHANGED PiCTURE"
  159.         Color 32
  160.         AnsiPos 10, 5
  161.         SPrint "                     "
  162.         AnsiPos 10, 6
  163.         SPrint " USE WHiCH PiCTURE ? "
  164.         AnsiPos 10, 7
  165.         SPrint "                     "
  166.         AnsiPos 10, 8
  167.         SPrint "                     "
  168.         AnsiPos 10, 9
  169.         SPrint "                     "
  170.         Color 1
  171.         For INTEGER003 = 6 To 9
  172.             AnsiPos 9, INTEGER003
  173.             SPrint "▐"
  174.         Next
  175.         AnsiPos 10, 10
  176.         SPrint "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
  177.         INTEGER001 = S2I(STRING004, 10)
  178.         :LABEL006
  179.         AnsiPos 16, 8
  180.         Color 47
  181.         SPrint "[ " + I2S(INTEGER001, 10) + " / " + I2S(INTEGER002, 10) + " ]"
  182.         AnsiPos INTEGER014, INTEGER015
  183.         :LABEL007
  184.         STRING003 = KInkey()
  185.         If (STRING003 == "") Goto LABEL007
  186.         If (STRING003 == "UP") Then
  187.             Inc INTEGER001
  188.             If (INTEGER001 > INTEGER002) INTEGER001 = 1
  189.             Goto LABEL006
  190.         Endif
  191.         If (STRING003 == "DOWN") Then
  192.             Dec INTEGER001
  193.             If (INTEGER001 < 1) INTEGER001 = INTEGER002
  194.             Goto LABEL006
  195.         Endif
  196.         If (STRING003 <> Chr(13)) Goto LABEL007
  197.         STRING004 = I2S(INTEGER001, 10)
  198.         Color 1
  199.         Goto LABEL001
  200.     Endif
  201.     If (STRING003 == Chr(8)) Then
  202.         If (Len(TSTRING005(INTEGER017)) > 0) Then
  203.             TSTRING005(INTEGER017) = Left(TSTRING005(INTEGER017), Len(TSTRING005(INTEGER017)) - 1)
  204.             Dec INTEGER012
  205.             AnsiPos INTEGER012, INTEGER013
  206.             Print "  "
  207.             Goto LABEL004
  208.             Goto LABEL008
  209.         Endif
  210.         Goto LABEL004
  211.     Endif
  212.     :LABEL008
  213.     If (STRING001 == Chr(8)) Then
  214.         If (Len(TSTRING006(INTEGER016)) > 0) Then
  215.             TSTRING006(INTEGER016) = Left(TSTRING006(INTEGER016), Len(TSTRING006(INTEGER016)) - 1)
  216.             Dec INTEGER014
  217.             AnsiPos INTEGER014, INTEGER015
  218.             Print "  "
  219.             Goto LABEL004
  220.             Goto LABEL009
  221.         Endif
  222.         Goto LABEL004
  223.     Endif
  224.     :LABEL009
  225.     If (STRING003 == Chr(13)) Then
  226.         FPutLn 2, "S : " + TSTRING005(INTEGER017)
  227.         Inc INTEGER017
  228.         Inc INTEGER013
  229.         If (INTEGER013 > INTEGER007) Then
  230.             For INTEGER003 = 1 To INTEGER017 - 1
  231.                 TSTRING005(INTEGER003) = TSTRING005(INTEGER003 + 1)
  232.                 AnsiPos INTEGER004, INTEGER005 + INTEGER003 - 1
  233.                 Print TSTRING005(INTEGER003 + 1) + Left(STRING007, INTEGER006 - INTEGER004 - Len(TSTRING005(INTEGER003)))
  234.             Next
  235.             INTEGER013 = INTEGER007
  236.             Dec INTEGER017
  237.         Endif
  238.         INTEGER012 = INTEGER004
  239.         Goto LABEL004
  240.     Endif
  241.     If (STRING001 == Chr(13)) Then
  242.         FPutLn 2, "U :" + TSTRING006(INTEGER016)
  243.         Inc INTEGER016
  244.         Inc INTEGER015
  245.         If (INTEGER015 > INTEGER011) Then
  246.             For INTEGER003 = 1 To INTEGER016 - 1
  247.                 TSTRING006(INTEGER003) = TSTRING006(INTEGER003 + 1)
  248.                 AnsiPos INTEGER008, INTEGER009 + INTEGER003 - 1
  249.                 Print TSTRING006(INTEGER003 + 1) + Left(STRING007, INTEGER010 - INTEGER008 - Len(TSTRING006(INTEGER003)))
  250.             Next
  251.             INTEGER015 = INTEGER011
  252.             Dec INTEGER016
  253.         Endif
  254.         INTEGER014 = INTEGER008
  255.         Goto LABEL004
  256.     Endif
  257.     If ((STRING003 >= " ") && (Len(STRING003) == 1)) Goto LABEL002
  258.     If ((STRING001 >= " ") && (Len(STRING001) == 1)) Goto LABEL003
  259.     Goto LABEL005
  260.     :LABEL010
  261.     STRING010 = Time()
  262.     FPutLn 2, "──────────────────────────────────────────────────────────────────────────────"
  263.     FPutLn 2, "** CHAT ENDED AT " + STRING010
  264.     FPutLn 2, "══════════════════════════════════════════════════════════════════════════════"
  265.     FClose 2
  266.     Color 1
  267.     Cls
  268.     Print "@X01 [ V1.0ß (C)TYGER/PAiN!-CNC ]"
  269.     Delay 20
  270.     RestScrn
  271.     End
  272.  
  273. ;------------------------------------------------------------------------------
  274. ;
  275. ; Usage report (before postprocessing)
  276. ;
  277. ; ■ Statements used :
  278. ;
  279. ;    1       End
  280. ;    1       Cls
  281. ;    5       Color 
  282. ;    53      Goto 
  283. ;    54      Let 
  284. ;    10      Print 
  285. ;    34      If 
  286. ;    1       DispFile 
  287. ;    2       FOpen 
  288. ;    1       FAppend 
  289. ;    2       FClose 
  290. ;    10      FGet 
  291. ;    15      FPutLn 
  292. ;    1       GetUser
  293. ;    1       Delay 
  294. ;    11      Inc 
  295. ;    7       Dec 
  296. ;    21      AnsiPos 
  297. ;    1       SaveScrn
  298. ;    1       RestScrn
  299. ;    8       SPrint 
  300. ;
  301. ;
  302. ; ■ Functions used :
  303. ;
  304. ;    55      +
  305. ;    25      -
  306. ;    16      ==
  307. ;    2       <>
  308. ;    9       <
  309. ;    6       <=
  310. ;    7       >
  311. ;    14      >=
  312. ;    24      !
  313. ;    16      &&
  314. ;    7       ||
  315. ;    12      Len(
  316. ;    2       Upper()
  317. ;    9       Left()
  318. ;    8       Chr()
  319. ;    1       Random()
  320. ;    1       Date()
  321. ;    2       Time()
  322. ;    1       U_Name()
  323. ;    8       PPEPath()
  324. ;    3       PcbNode()
  325. ;    3       ReadLine()
  326. ;    1       Exist()
  327. ;    7       I2S()
  328. ;    2       S2I()
  329. ;    2       KInkey()
  330. ;    1       MInkey()
  331. ;
  332. ;------------------------------------------------------------------------------
  333. ;
  334. ; Analysis flags : No flag
  335. ;
  336. ;------------------------------------------------------------------------------
  337. ;
  338. ; Postprocessing report
  339. ;
  340. ;    6       For/Next
  341. ;    0       While/EndWhile
  342. ;    17      If/Then or If/Then/Else
  343. ;    0       Select Case
  344. ;
  345. ;------------------------------------------------------------------------------
  346. ;                 AEGiS Corp - Break the routines, code against the machines!
  347. ;------------------------------------------------------------------------------
  348.