home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / PWAULTP3.ZIP / PWAPRGMS.A02 / PWA95 / PWAPCP01.ZIP / CHAT100 / CHAT!100.ZIP / CHAT.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-08-04  |  5KB  |  387 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.1O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     DWord    DWORD001
  21.     String   STRING001
  22.     String   STRING002
  23.     String   TSTRING003(2)
  24.     String   TSTRING004(11)
  25.     String   TSTRING005(2)
  26.     String   TSTRING006(4)
  27.     String   STRING007
  28.     Int      INT001
  29.     Int      INT002
  30.     Int      INT003
  31.     Int      INT004
  32.     Int      INT005
  33.     Int      INT006
  34.     Int      INT007
  35.     Int      INT008
  36.     Int      INT009
  37.     Declare  Procedure PROC001()
  38.     Declare  Procedure PROC002()
  39.     Declare  Procedure PROC003()
  40.     Declare  Procedure PROC004()
  41.  
  42. ;------------------------------------------------------------------------------
  43.  
  44.     INT001 = 1
  45.     INT003 = 1
  46.     INT002 = 1
  47.     INT004 = 13
  48.     INT006 = 1
  49.     INT007 = 1
  50.     INT008 = 1
  51.     INT009 = 13
  52.     TSTRING006(1) = ReadLine(PPEPath() + "CHAT.CFG", 1)
  53.     TSTRING006(2) = ReadLine(PPEPath() + "CHAT.CFG", 2)
  54.     TSTRING006(3) = ReadLine(PPEPath() + "CHAT.CFG", 3)
  55.     TSTRING006(4) = ReadLine(PPEPath() + "CHAT.CFG", 4)
  56.     DWORD001 = ReadLine(PPEPath() + "CHAT.CFG", 5)
  57.     TSTRING006(3) = ReplaceStr(TSTRING006(3), "%SYSOP%", TSTRING006(2))
  58.     TSTRING006(3) = ReplaceStr(TSTRING006(3), "%BBS%", TSTRING006(1))
  59.     TSTRING006(3) = ReplaceStr(TSTRING006(3), "~", " ")
  60.     STRING007 = "1.00"
  61.     If (Crc32(0, TSTRING006(1)) / 5 + 33 == DWORD001) Then
  62.         BOOLEAN001 = 1
  63.     Else
  64.         BOOLEAN001 = 0
  65.     Endif
  66.     If (AnsiOn()) Goto LABEL001
  67.     Print TSTRING006(3)
  68.     End
  69.     :LABEL001
  70.     SaveScrn
  71.     StartDisp 1
  72.     Cls
  73.     PROC002()
  74.     AnsiPos 1, 1
  75.     Print "@X0A" + TSTRING006(3)
  76.     INT001 = GetX()
  77.     INT003 = GetY()
  78.     While (STRING002 <> Chr(27)) Do
  79.         PROC001()
  80.         PROC003()
  81.     EndWhile
  82.     Cls
  83.     PrintLn "@X0FCHAT.PPE Version ", STRING007, " Copyright (C) 1995 by Mukunda Modell"
  84.     If (BOOLEAN001) Then
  85.         PrintLn "@X0CREGISTERED to:@X0F ", TSTRING006(1)
  86.     Else
  87.         Print "@X8EUNREGISTERED"
  88.         For INT005 = 1 To 20
  89.             Print "."
  90.             Delay 3
  91.         Next
  92.         Print "@X0F"
  93.     Endif
  94.     Wait
  95.     RestScrn
  96.     KbdStuff Chr(27)
  97.     End
  98.  
  99. ;------------------------------------------------------------------------------
  100.  
  101.     Procedure PROC001()
  102.  
  103.     STRING002 = ""
  104.     STRING001 = ""
  105.     While ((STRING002 == "") && (STRING001 == "")) Do
  106.         STRING002 = KInkey()
  107.         STRING001 = MInkey()
  108.     EndWhile
  109.  
  110.     EndProc
  111.  
  112.  
  113. ;------------------------------------------------------------------------------
  114.  
  115.     Procedure PROC002()
  116.  
  117.     AnsiPos 1, 12
  118.     If (BOOLEAN001) Then
  119.         PrintLn TSTRING006(4)
  120.     Else
  121.         PrintLn "@X09────────══════════════════════════@X8EUNREGISTERED!@X09════════════════════════────────@X0F"
  122.     Endif
  123.     AnsiPos 1, 1
  124.  
  125.     EndProc
  126.  
  127.  
  128. ;------------------------------------------------------------------------------
  129.  
  130.     Procedure PROC003()
  131.  
  132.     If (STRING002 == "") Then
  133.         Cls
  134.         Print "@X0A" + TSTRING006(3)
  135.         End
  136.     Endif
  137.     PROC004()
  138.     If ((TSTRING005(1) <> "") || (TSTRING005(2) <> "")) Then
  139.         AnsiPos INT001, INT003
  140.         Print "@X0A" + TSTRING005(1)
  141.         INT001 = GetX()
  142.         INT003 = GetY()
  143.         TSTRING005(1) = ""
  144.         AnsiPos INT002, INT004
  145.         Print "@X0F" + TSTRING005(2)
  146.         INT002 = GetX()
  147.         INT004 = GetY()
  148.         TSTRING005(2) = ""
  149.     Endif
  150.     If (STRING002 <> "") Then
  151.         AnsiPos INT001, INT003
  152.         If (CurColor() <> "@X0A") Print "@X0A"
  153.         If ((STRING002 == " ") && (GetX() == 1)) Then
  154.             TSTRING003(1) = ""
  155.             Goto LABEL002
  156.         Endif
  157.         If (STRING002 == " ") Then
  158.             TSTRING003(1) = ""
  159.             Goto LABEL002
  160.         Endif
  161.         If (STRING002 == Chr(13)) Then
  162.             TSTRING003(1) = ""
  163.             INT006 = GetX()
  164.             INT007 = GetY()
  165.             If (GetY() == 11) INT007 = 10
  166.             Newline
  167.             STRING002 = ""
  168.             INT001 = GetX()
  169.             INT003 = GetY()
  170.             PROC004()
  171.             Goto LABEL002
  172.         Endif
  173.         If ((INT001 == 1) && (STRING002 == Chr(8))) Then
  174.             AnsiPos INT006, INT007
  175.             INT001 = INT006
  176.             INT003 = INT007
  177.             STRING002 = ""
  178.             Goto LABEL002
  179.         Endif
  180.         If (STRING002 == Chr(8)) Then
  181.             Backup 1
  182.             Print " "
  183.             Goto LABEL002
  184.         Endif
  185.         TSTRING003(1) = TSTRING003(1) + STRING002
  186.         :LABEL002
  187.         If (INT001 == 79) Then
  188.             INT001 = 1
  189.             Inc INT003
  190.             Backup Len(TSTRING003(1))
  191.             INT006 = GetX()
  192.             INT007 = GetY()
  193.             PrintLn Space(Len(TSTRING003(1)))
  194.             STRING002 = ""
  195.             TSTRING005(1) = TSTRING003(1)
  196.             INT001 = GetX()
  197.             INT003 = GetY()
  198.         Endif
  199.         AnsiPos INT001, INT003
  200.         Print STRING002
  201.         INT001 = GetX()
  202.         INT003 = GetY()
  203.     Endif
  204.     If (STRING001 <> "") Then
  205.         AnsiPos INT002, INT004
  206.         If (CurColor() <> "@X0F") Print "@X0F"
  207.         If ((STRING001 == " ") && (INT002 == 1)) Then
  208.             TSTRING003(2) = ""
  209.             Goto LABEL003
  210.         Endif
  211.         If (STRING001 == " ") Then
  212.             TSTRING003(2) = ""
  213.             Goto LABEL003
  214.         Endif
  215.         If (STRING001 == Chr(13)) Then
  216.             TSTRING003(2) = ""
  217.             INT008 = GetX()
  218.             INT009 = GetY()
  219.             If (GetY() == 22) INT009 = 21
  220.             Newline
  221.             STRING001 = ""
  222.             INT002 = GetX()
  223.             INT004 = GetY()
  224.             PROC004()
  225.             Goto LABEL003
  226.         Endif
  227.         If ((INT002 == 1) && (STRING001 == Chr(8))) Then
  228.             AnsiPos INT008, INT009
  229.             INT002 = INT008
  230.             INT004 = INT009
  231.             STRING001 = ""
  232.             Goto LABEL003
  233.         Endif
  234.         If (STRING001 == Chr(8)) Then
  235.             Backup 1
  236.             Print " "
  237.             Goto LABEL003
  238.         Endif
  239.         TSTRING003(2) = TSTRING003(2) + STRING001
  240.         :LABEL003
  241.         If (INT002 == 79) Then
  242.             INT002 = 1
  243.             Inc INT004
  244.             Backup Len(TSTRING003(2))
  245.             INT008 = GetX()
  246.             INT009 = GetY()
  247.             PrintLn Space(Len(TSTRING003(2)))
  248.             STRING001 = ""
  249.             TSTRING005(2) = TSTRING003(2)
  250.             INT002 = GetX()
  251.             INT004 = GetY()
  252.         Endif
  253.         AnsiPos INT002, INT004
  254.         Print STRING001
  255.         INT002 = GetX()
  256.         INT004 = GetY()
  257.     Endif
  258.  
  259.     EndProc
  260.  
  261.  
  262. ;------------------------------------------------------------------------------
  263.  
  264.     Procedure PROC004()
  265.  
  266.     If (INT003 == 12) Then
  267.         AnsiPos 1, 1
  268.         If (CurColor() <> "@X0A") Print "@X0A"
  269.         TSTRING004(1) = ScrText(1, 1, 79, 0)
  270.         TSTRING004(2) = ScrText(1, 2, 79, 0)
  271.         TSTRING004(3) = ScrText(1, 3, 79, 0)
  272.         TSTRING004(4) = ScrText(1, 4, 79, 0)
  273.         TSTRING004(5) = ScrText(1, 5, 79, 0)
  274.         TSTRING004(6) = ScrText(1, 6, 79, 0)
  275.         TSTRING004(7) = ScrText(1, 7, 79, 0)
  276.         TSTRING004(8) = ScrText(1, 8, 79, 0)
  277.         TSTRING004(9) = ScrText(1, 9, 79, 0)
  278.         TSTRING004(10) = ScrText(1, 10, 79, 0)
  279.         TSTRING004(11) = ScrText(1, 11, 79, 0)
  280.         For INT005 = 1 To 11
  281.             Print TSTRING004(INT005 + 1)
  282.             ClrEol
  283.             Newline
  284.         Next
  285.         INT001 = 1
  286.         INT003 = 11
  287.         AnsiPos INT001, INT003
  288.     Endif
  289.     If (INT004 == 23) Then
  290.         AnsiPos 1, 13
  291.         If (CurColor() <> "@X0F") Print "@X0F"
  292.         TSTRING004(1) = ScrText(1, 13, 79, 0)
  293.         TSTRING004(2) = ScrText(1, 14, 79, 0)
  294.         TSTRING004(3) = ScrText(1, 15, 79, 0)
  295.         TSTRING004(4) = ScrText(1, 16, 79, 0)
  296.         TSTRING004(5) = ScrText(1, 17, 79, 0)
  297.         TSTRING004(6) = ScrText(1, 18, 79, 0)
  298.         TSTRING004(7) = ScrText(1, 19, 79, 0)
  299.         TSTRING004(8) = ScrText(1, 20, 79, 0)
  300.         TSTRING004(9) = ScrText(1, 21, 79, 0)
  301.         TSTRING004(10) = ScrText(1, 22, 79, 0)
  302.         TSTRING004(11) = ScrText(1, 23, 79, 0)
  303.         For INT005 = 1 To 10
  304.             Print TSTRING004(INT005 + 1)
  305.             ClrEol
  306.             Newline
  307.         Next
  308.         INT002 = 1
  309.         INT004 = 22
  310.         AnsiPos INT002, INT004
  311.         INT009 = 21
  312.     Endif
  313.  
  314.     EndProc
  315.  
  316.  
  317. ;------------------------------------------------------------------------------
  318. ;
  319. ; Usage report (before postprocessing)
  320. ;
  321. ; ■ Statements used :
  322. ;
  323. ;    3       End
  324. ;    3       Cls
  325. ;    2       ClrEol
  326. ;    1       Wait
  327. ;    46      Goto 
  328. ;    108     Let 
  329. ;    18      Print 
  330. ;    6       PrintLn 
  331. ;    33      If 
  332. ;    1       StartDisp 
  333. ;    1       Delay 
  334. ;    2       Inc 
  335. ;    4       Newline
  336. ;    1       KbdStuff 
  337. ;    15      AnsiPos 
  338. ;    4       Backup 
  339. ;    1       SaveScrn
  340. ;    1       RestScrn
  341. ;    4       EndProc
  342. ;
  343. ;
  344. ; ■ Functions used :
  345. ;
  346. ;    1       /
  347. ;    17      +
  348. ;    24      ==
  349. ;    9       <>
  350. ;    3       <
  351. ;    3       <=
  352. ;    6       >=
  353. ;    27      !
  354. ;    11      &&
  355. ;    4       ||
  356. ;    4       Len(
  357. ;    2       Space()
  358. ;    8       Chr()
  359. ;    5       PPEPath()
  360. ;    5       ReadLine()
  361. ;    1       AnsiOn()
  362. ;    14      GetX()
  363. ;    15      GetY()
  364. ;    4       CurColor()
  365. ;    1       KInkey()
  366. ;    1       MInkey()
  367. ;    22      ScrText()
  368. ;    3       ReplaceStr()
  369. ;    1       Crc32()
  370. ;
  371. ;------------------------------------------------------------------------------
  372. ;
  373. ; Analysis flags : No flag
  374. ;
  375. ;------------------------------------------------------------------------------
  376. ;
  377. ; Postprocessing report
  378. ;
  379. ;    3       For/Next
  380. ;    2       While/EndWhile
  381. ;    21      If/Then or If/Then/Else
  382. ;    0       Select Case
  383. ;
  384. ;------------------------------------------------------------------------------
  385. ;                 AEGiS Corp - Break the routines, code against the machines!
  386. ;------------------------------------------------------------------------------
  387.