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