home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / TF-CHAT.ZIP / XPS-CHAT.PPE (.txt) < prev   
PCBoard Programming Language Executable  |  1996-06-13  |  5KB  |  398 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.2O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  INTEGER001
  20.     Integer  INTEGER002
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     Integer  INTEGER005
  24.     Integer  INTEGER006
  25.     Integer  INTEGER007
  26.     Integer  INTEGER008
  27.     String   STRING001
  28.     String   STRING002
  29.     String   STRING003
  30.     String   STRING004
  31.     String   STRING005
  32.     String   STRING006
  33.     String   STRING007
  34.     String   STRING008
  35.     String   STRING009
  36.     String   STRING010
  37.     String   STRING011
  38.     String   STRING012
  39.     String   STRING013
  40.  
  41. ;------------------------------------------------------------------------------
  42.  
  43.     RdUNet PcbNode()
  44.     WrUNet PcbNode(), "Q", UN_Name(), UN_City(), "OBV/2 Sysop Chatter by tF[XPS]", ""
  45.     If (TokenStr() == Upper("PAGE")) Then
  46.         STRING011 = Time()
  47.         If ((STRING011 < ReadLine(PPEPath() + "XPS-CHAT.CFG", 4)) || (STRING011 > ReadLine(PPEPath() + "XPS-CHAT.CFG", 5))) Goto LABEL013
  48.         Newlines 2
  49.         Print "@X0FE@X07n@X08ter @X02c@X0Ah@X0Ea@X0Ft! R@X07e@X08ason:@X07 "
  50.         KeyFlush
  51.         InputStr "_", STRING002, 15, 57, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ~!#$%^&*()_+|{}:>?`1234567890-=\[];',./", 0
  52.         If (STRING002 == "") Goto LABEL002
  53.         PageOn
  54.         Newline
  55.         INTEGER001 = 1
  56.         Goto LABEL003
  57.         :LABEL001
  58.         AdjTime MinOn() - INTEGER006
  59.         PageOff
  60.         :LABEL002
  61.         Color 7
  62.         Cls
  63.         Newline
  64.         KeyFlush
  65.         KbdStuff Chr(13)
  66.         End
  67.         :LABEL003
  68.         If (KInkey() == " ") Goto LABEL004
  69.         Print "@X02c@X0Ah@X0Ea@X0Ft! "
  70.         Sound 200
  71.         Delay 3
  72.         Sound 400
  73.         Delay 2
  74.         Sound 500
  75.         Delay 4
  76.         Sound 300
  77.         Sound 0
  78.         INTEGER001 = INTEGER001 + 1
  79.         If (INTEGER001 == 12) Goto LABEL002
  80.         Goto LABEL003
  81.     Endif
  82.     :LABEL004
  83.     Cls
  84.     Color 15
  85.     INTEGER006 = MinOn()
  86.     Print "@POFF@@QOFF@"
  87.     DispFile PPEPath() + "XPS-CHAT.PCB", 0
  88.     AnsiPos 45, 20
  89.     Print "@X50" + U_Name() + " "
  90.     STRING001 = ReadLine(PPEPath() + "XPS-CHAT.CFG", 1)
  91.     STRING009 = ReadLine(PPEPath() + "XPS-CHAT.CFG", 2)
  92.     STRING010 = ReadLine(PPEPath() + "XPS-CHAT.CFG", 3)
  93.     AnsiPos 7, 20
  94.     Print STRING001
  95.     INTEGER002 = 4
  96.     INTEGER003 = 11
  97.     INTEGER004 = 42
  98.     INTEGER005 = 11
  99.     AnsiPos 4, 11
  100.     :LABEL005
  101.     STRING003 = KInkey()
  102.     STRING004 = MInkey()
  103.     If (STRING003 == Chr(27)) Goto LABEL001
  104.     If (STRING003 == Chr(13)) Goto LABEL009
  105.     If (STRING004 == Chr(13)) Goto LABEL010
  106.     If (STRING003 == Chr(8)) Goto LABEL011
  107.     If (STRING004 == Chr(8)) Goto LABEL012
  108.     If (STRING003 == Chr(5)) Goto LABEL014
  109.     If ((((((((((STRING003 == "LEFT") || (STRING003 == "RIGHT")) || (STRING003 == "UP")) || (STRING003 == "DOWN")) || (STRING003 == "INS")) || (STRING003 == "DEL")) || (STRING003 == "HOME")) || (STRING003 == "PGUP")) || (STRING003 == "END")) || (STRING003 == "PGDN")) Then
  110.         STRING003 = ""
  111.     Endif
  112.     If ((((((((((STRING004 == "LEFT") || (STRING004 == "RIGHT")) || (STRING004 == "UP")) || (STRING004 == "DOWN")) || (STRING004 == "INS")) || (STRING004 == "DEL")) || (STRING004 == "HOME")) || (STRING004 == "PGUP")) || (STRING004 == "END")) || (STRING004 == "PGDN")) Then
  113.         STRING004 = ""
  114.     Endif
  115.     If ((Asc(STRING003) < 32) || (Asc(STRING003) > 126)) Then
  116.         STRING003 = ""
  117.     Endif
  118.     If ((Asc(STRING004) < 32) || (Asc(STRING004) > 126)) Then
  119.         STRING004 = ""
  120.     Endif
  121.     If (STRING003 == "") Then
  122.         If (STRING004 == "") Then
  123.             Goto LABEL005
  124.         Endif
  125.         If (STRING003 == " ") Then
  126.             STRING007 = ""
  127.             Goto LABEL006
  128.         Endif
  129.         STRING007 = STRING007 + STRING003
  130.         :LABEL006
  131.         AnsiPos INTEGER002, INTEGER003
  132.         Print STRING009 + STRING003
  133.         Inc INTEGER002
  134.         :LABEL007
  135.         If (Len(StripAtx(STRING007)) == 15) Then
  136.             STRING007 = Right(STRING007, Len(StripAtx(STRING007)) - 1)
  137.         Endif
  138.         If (INTEGER002 == 38) Then
  139.             AnsiPos INTEGER002 - Len(StripAtx(STRING007)), INTEGER003
  140.             Print Space(Len(StripAtx(STRING007)))
  141.             INTEGER002 = 4
  142.             Inc INTEGER003
  143.             AnsiPos INTEGER002, INTEGER003
  144.             Print STRING007
  145.             STRING007 = ""
  146.             INTEGER002 = GetX()
  147.             INTEGER003 = GetY()
  148.             AnsiPos INTEGER002, INTEGER003
  149.         Endif
  150.         If (INTEGER003 == 18) Then
  151.             STRING005 = ScrText(4, 16, 36, 1)
  152.             STRING006 = ScrText(4, 17, 36, 1)
  153.             STRING007 = ScrText(4, 18, 36, 1)
  154.             AnsiPos 4, 11
  155.             Print "                                    "
  156.             AnsiPos 4, 12
  157.             Print "                                    "
  158.             AnsiPos 4, 13
  159.             Print "                                    "
  160.             AnsiPos 4, 14
  161.             Print "                                    "
  162.             AnsiPos 4, 15
  163.             Print "                                    "
  164.             AnsiPos 4, 16
  165.             Print "                                    "
  166.             AnsiPos 4, 17
  167.             Print "                                    "
  168.             AnsiPos 4, 18
  169.             Print "                                    "
  170.             AnsiPos 4, 11
  171.             Print STRING005
  172.             AnsiPos 4, 12
  173.             Print STRING006
  174.             INTEGER002 = 4
  175.             INTEGER003 = 13
  176.             AnsiPos INTEGER002, INTEGER003
  177.             Print STRING007
  178.             INTEGER002 = Len(Strip(STRING007, " "))
  179.             INTEGER003 = GetY()
  180.             AnsiPos INTEGER002, INTEGER003
  181.             STRING007 = ""
  182.         Endif
  183.         Goto LABEL005
  184.     Endif
  185.     If (STRING004 == " ") Then
  186.         STRING008 = ""
  187.     Else
  188.         STRING008 = STRING008 + STRING004
  189.     Endif
  190.     AnsiPos INTEGER004, INTEGER005
  191.     Print STRING010 + STRING004
  192.     Inc INTEGER004
  193.     :LABEL008
  194.     If (Len(StripAtx(STRING008)) == 15) Then
  195.         STRING008 = Right(STRING008, Len(StripAtx(STRING008)) - 1)
  196.     Endif
  197.     If (INTEGER004 == 75) Then
  198.         AnsiPos INTEGER004 - Len(StripAtx(STRING008)), INTEGER005
  199.         Print Space(Len(StripAtx(STRING008)))
  200.         INTEGER004 = 42
  201.         Inc INTEGER005
  202.         AnsiPos INTEGER004, INTEGER005
  203.         Print STRING008
  204.         STRING008 = ""
  205.         INTEGER004 = GetX()
  206.         INTEGER005 = GetY()
  207.         AnsiPos INTEGER004, INTEGER005
  208.     Endif
  209.     If (INTEGER005 == 18) Then
  210.         STRING005 = ScrText(42, 16, 33, 1)
  211.         STRING006 = ScrText(42, 17, 33, 1)
  212.         STRING008 = ScrText(42, 18, 33, 1)
  213.         AnsiPos 42, 11
  214.         Print "                                 "
  215.         AnsiPos 42, 12
  216.         Print "                                 "
  217.         AnsiPos 42, 13
  218.         Print "                                 "
  219.         AnsiPos 42, 14
  220.         Print "                                 "
  221.         AnsiPos 42, 15
  222.         Print "                                 "
  223.         AnsiPos 42, 16
  224.         Print "                                 "
  225.         AnsiPos 42, 17
  226.         Print "                                 "
  227.         AnsiPos 42, 18
  228.         Print "                                 "
  229.         AnsiPos 42, 11
  230.         Print STRING005
  231.         AnsiPos 42, 12
  232.         Print STRING006
  233.         INTEGER004 = 42
  234.         INTEGER005 = 13
  235.         AnsiPos INTEGER004, INTEGER005
  236.         Print STRING008
  237.         INTEGER004 = 38 + Len(Strip(STRING008, " "))
  238.         INTEGER005 = GetY()
  239.         AnsiPos INTEGER004, INTEGER005
  240.         STRING008 = ""
  241.     Endif
  242.     Goto LABEL005
  243.     :LABEL009
  244.     STRING007 = ""
  245.     INTEGER002 = 4
  246.     Inc INTEGER003
  247.     AnsiPos INTEGER002, INTEGER003
  248.     Goto LABEL007
  249.     :LABEL010
  250.     STRING008 = ""
  251.     INTEGER004 = 42
  252.     Inc INTEGER005
  253.     AnsiPos INTEGER004, INTEGER005
  254.     Goto LABEL008
  255.     :LABEL011
  256.     STRING007 = Left(STRING007, Len(StripAtx(STRING007)) - 1)
  257.     If (INTEGER002 == 4) Goto LABEL005
  258.     Dec INTEGER002
  259.     AnsiPos INTEGER002, INTEGER003
  260.     Print " "
  261.     AnsiPos INTEGER002, INTEGER003
  262.     Goto LABEL005
  263.     :LABEL012
  264.     STRING008 = Left(STRING008, Len(StripAtx(STRING008)) - 1)
  265.     If (INTEGER004 == 42) Goto LABEL005
  266.     Dec INTEGER004
  267.     AnsiPos INTEGER004, INTEGER005
  268.     Print " "
  269.     AnsiPos INTEGER004, INTEGER005
  270.     Goto LABEL005
  271.     :LABEL013
  272.     Newline
  273.     PrintLn "@X08The @X04S@X0Cy@X0Esop @X08is @X0Fbusy @X08.@X07.@X0F.@X07"
  274.     Color 7
  275.     KeyFlush
  276.     KbdStuff Chr(13)
  277.     End
  278.     :LABEL014
  279.     STRING012 = ReadLine(PPEPath() + "XPS-CHAT.CFG", 6)
  280.     STRING013 = ReadLine(PPEPath() + "XPS-CHAT.CFG", 7)
  281.     If (STRING012 == "") Goto LABEL005
  282.     If (!Exist(STRING012)) Goto LABEL005
  283.     INTEGER007 = GetX()
  284.     INTEGER008 = GetY()
  285.     AnsiPos 1, 23
  286.     SaveScrn
  287.     AnsiPos 1, 23
  288.     PrintLn STRING013
  289.     DefColor
  290.     Tokenize STRING012
  291.     Call GetToken()
  292.     StartDisp 1
  293.     KbdFlush
  294.     AnsiPos INTEGER007, INTEGER008
  295.     RestScrn
  296.     Goto LABEL005
  297.  
  298. ;------------------------------------------------------------------------------
  299. ;
  300. ; Usage report (before postprocessing)
  301. ;
  302. ; ■ Statements used :
  303. ;
  304. ;    2       End
  305. ;    2       Cls
  306. ;    3       Color 
  307. ;    41      Goto 
  308. ;    57      Let 
  309. ;    35      Print 
  310. ;    2       PrintLn 
  311. ;    29      If 
  312. ;    1       DispFile 
  313. ;    1       StartDisp 
  314. ;    1       DefColor
  315. ;    1       AdjTime 
  316. ;    1       InputStr 
  317. ;    3       Delay 
  318. ;    6       Inc 
  319. ;    2       Dec 
  320. ;    3       Newline
  321. ;    1       Newlines 
  322. ;    1       Tokenize 
  323. ;    2       KbdStuff 
  324. ;    1       Call 
  325. ;    1       RdUNet 
  326. ;    1       WrUNet 
  327. ;    44      AnsiPos 
  328. ;    1       SaveScrn
  329. ;    1       RestScrn
  330. ;    5       Sound 
  331. ;    1       PageOn
  332. ;    1       PageOff
  333. ;    1       KbdFlush
  334. ;    3       KeyFlush
  335. ;
  336. ;
  337. ; ■ Functions used :
  338. ;
  339. ;    16      +
  340. ;    7       -
  341. ;    43      ==
  342. ;    3       <
  343. ;    3       >
  344. ;    16      !
  345. ;    21      ||
  346. ;    12      Len(
  347. ;    1       Upper()
  348. ;    2       Left()
  349. ;    2       Right()
  350. ;    2       Space()
  351. ;    8       Chr()
  352. ;    4       Asc()
  353. ;    1       Time()
  354. ;    1       U_Name()
  355. ;    10      StripAtx()
  356. ;    2       Strip()
  357. ;    8       PPEPath()
  358. ;    2       PcbNode()
  359. ;    7       ReadLine()
  360. ;    1       UN_Name()
  361. ;    1       UN_City()
  362. ;    1       GetToken()
  363. ;    2       MinOn()
  364. ;    1       Exist()
  365. ;    1       TokenStr()
  366. ;    3       GetX()
  367. ;    5       GetY()
  368. ;    2       KInkey()
  369. ;    1       MInkey()
  370. ;    6       ScrText()
  371. ;
  372. ;------------------------------------------------------------------------------
  373. ;
  374. ; Analysis flags : AC
  375. ;
  376. ; A - Adjust online time remaining ■ 5
  377. ;     Program modify the amount of online time remaining, this may
  378. ;     be a way to bypass time limits
  379. ;     ■ Search for : ADJTIME
  380. ;
  381. ; C - Call child PPE ■ 3
  382. ;     This is usually normal, but may be a tricky way to launch some
  383. ;     sysop-only commands.
  384. ;     ■ Search for : CALL
  385. ;
  386. ;------------------------------------------------------------------------------
  387. ;
  388. ; Postprocessing report
  389. ;
  390. ;    0       For/Next
  391. ;    0       While/EndWhile
  392. ;    15      If/Then or If/Then/Else
  393. ;    0       Select Case
  394. ;
  395. ;------------------------------------------------------------------------------
  396. ;                 AEGiS Corp - Break the routines, code against the machines!
  397. ;------------------------------------------------------------------------------
  398.