home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / T / TLY-PA10.ZIP / TLPAGER.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-07-15  |  8KB  |  522 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.     String   STRING001
  20.     String   STRING002
  21.     String   STRING003
  22.     String   STRING004
  23.     String   STRING005
  24.     String   STRING006
  25.     String   STRING007
  26.     String   STRING008
  27.     String   STRING009
  28.     String   STRING010
  29.     String   STRING011
  30.     String   STRING012
  31.     String   STRING013
  32.     String   STRING014
  33.     String   STRING015
  34.     String   STRING016
  35.     String   STRING017
  36.     String   STRING018
  37.     String   STRING019
  38.     String   STRING020
  39.     String   STRING021
  40.     String   STRING022
  41.     String   STRING023
  42.     String   STRING024
  43.     String   STRING025
  44.     String   STRING026
  45.     String   STRING027
  46.     String   STRING028
  47.     Int      INT001
  48.     Int      INT002
  49.     Int      INT003
  50.     Int      INT004
  51.     Int      INT005
  52.     Int      INT006
  53.     Int      INT007
  54.     Int      INT008
  55.     Int      INT009
  56.     Int      INT010
  57.     Int      INT011
  58.     Int      INT012
  59.     Int      INT013
  60.     Int      INT014
  61.     Int      INT015
  62.     Int      INT016
  63.     Int      INT017
  64.     Int      INT018
  65.     Int      INT019
  66.     Int      INT020
  67.     Int      INT021
  68.     Declare  Procedure PROC001()
  69.  
  70. ;------------------------------------------------------------------------------
  71.  
  72.     STRING003 = "HeY DuDe, THaT'S NoT GooD To DeCoMPiLe PPe'S....If iT iS oNLY To"
  73.     STRING003 = "CHaNGe CoLoRZ oR STRiNGZ ---> No PRoB, BuT ALWaYS LeT THe CReDZ "
  74.     STRING003 = "oF THe AuTHoR aND GRoUP. RiPPiNG iS LaME, So CoNTaCT Me HeRe oN "
  75.     STRING003 = "iF Ya HaVe QueSTioNZ :  φ FaTaL PeRVeRSioN φ +41-27-431703 ? "
  76.     STRING003 = "D/▌RK M00N - TRiLoXY '95 !  "
  77.     Cls
  78.     GetUser
  79.     PROC001()
  80.     U_PageLen = 0
  81.     PutUser
  82.     STRING003 = "───────────────────────────────────────────────────────────────────────────────"
  83.     INT020 = 1
  84.     INT016 = 1
  85.     Log "User " + U_Name() + " enter TLPager v1.0", 1
  86.     GetUser
  87.     FOpen 1, PPEPath() + "tlpager.cfg", 0, 0
  88.     If (Ferr(1) == 1) Goto LABEL001
  89.     FGet 1, STRING010
  90.     FGet 1, STRING012
  91.     FGet 1, STRING013
  92.     FGet 1, STRING014
  93.     FGet 1, STRING015
  94.     FGet 1, STRING016
  95.     FGet 1, INT005
  96.     FGet 1, INT006
  97.     FGet 1, INT007
  98.     FGet 1, INT008
  99.     FGet 1, INT012
  100.     FGet 1, INT001
  101.     FGet 1, INT004
  102.     FGet 1, INT013
  103.     FGet 1, STRING017
  104.     FGet 1, STRING005
  105.     FGet 1, INT018
  106.     FGet 1, STRING018
  107.     FGet 1, STRING019
  108.     FGet 1, STRING020
  109.     FGet 1, STRING021
  110.     FGet 1, STRING022
  111.     FGet 1, STRING023
  112.     FGet 1, STRING011
  113.     FGet 1, STRING024
  114.     FGet 1, STRING028
  115.     FClose 1
  116.     FOpen 2, "PCBOARD.SYS", 0, 0
  117.     FSeek 2, 4, 0
  118.     FRead 2, STRING027, 2
  119.     FClose 2
  120.     If (STRING027 <> "-1") Then
  121.         Log "Page Bell switch off --> paging aborted", 1
  122.     Else
  123.         If (CurSec() < INT018) Then
  124.             Cls
  125.             Log "User " + U_Name() + " has a lower security for TLPager v1.0", 1
  126.             DispFile PPEPath() + STRING018, 1 + 2 + 4
  127.             Wait
  128.             Goto LABEL019
  129.         Endif
  130.         Goto LABEL002
  131.         :LABEL001
  132.         FClose 1
  133.         PrintLn "@X09Sorry, config file missing !!! Please read the Doc !!"
  134.         Goto LABEL019
  135.         :LABEL002
  136.         If (Exist(PPEPath() + STRING012)) DispFile PPEPath() + STRING012, 4 + 2 + 1
  137.         PrintLn ""
  138.         PrintLn ""
  139.         :LABEL003
  140.         INT002 = GetY()
  141.         DispFile PPEPath() + STRING016, 4 + 2 + 1
  142.         INT003 = GetY()
  143.         If (Ferr(1) == 1) Goto LABEL019
  144.         INT014 = 2
  145.         INT010 = INT002
  146.         STRING002 = StripAtx(STRING014)
  147.         INT015 = (80 - Len(STRING002)) / 2
  148.         STRING009 = STRING002
  149.         Gosub LABEL008
  150.         STRING009 = STRING014
  151.         Gosub LABEL007
  152.         INT010 = INT003 + 2
  153.         INT015 = 0
  154.         AnsiPos INT015, INT010
  155.         If (Exist(PPEPath() + STRING013)) DispFile PPEPath() + STRING013, 4 + 2 + 1
  156.         AnsiPos 20, INT003 + 4
  157.         Print "@X0FPre@X08ss@X07 en@X08ter t@X07o p@X0Fage s@X07ysop @X08or E@X0FSC t@X07o ab@X0Fort"
  158.         INT010 = INT002 + INT005 - 1
  159.         AnsiPos INT006, INT010
  160.         INT017 = INT008 - INT006
  161.         INT011 = 0
  162.         Goto LABEL010
  163.         :LABEL004
  164.         INT010 = INT003 + 3
  165.         INT015 = 18
  166.         AnsiPos INT015, INT010
  167.         Print "@X07[@X0BReaso@X0Bn too short, enter please a longer one !!@X07]"
  168.         Delay 10
  169.         INT010 = INT002
  170.         INT015 = 0
  171.         AnsiPos INT015, INT010
  172.         INT016 = 1
  173.         Goto LABEL003
  174.         :LABEL005
  175.         AnsiPos 0, 21
  176.         SPrintLn STRING003
  177.         SPrintLn "PReSS SPaCe To STaRT THe CHaTTeR oR MaNY TiMeS ESC To FuCK THe uSeR "
  178.         INT010 = INT003 + 4
  179.         INT009 = (80 - INT012 + 2) / 2
  180.         AnsiPos INT009 - 1, INT003 + 6
  181.         Print "@X08["
  182.         AnsiPos INT009 + INT012 + 1, INT003 + 6
  183.         Print "@X08]"
  184.         AnsiPos 0, 22
  185.         STRING002 = StripAtx(STRING010)
  186.         INT021 = 40 - Len(STRING002) / 2
  187.         If (KInkey() == " ") Goto LABEL014
  188.         If (KInkey() == "") Goto LABEL016
  189.         AnsiPos 0, INT010
  190.         ClrEol
  191.         For INT019 = 0 To INT012
  192.             INT015 = INT021
  193.             AnsiPos INT015, INT010
  194.             If (STRING019 == "YES") Gosub LABEL017
  195.             Print STRING010
  196.             STRING009 = STRING002
  197.             INT020 = 2
  198.             INT016 = 1
  199.             Delay INT001
  200.             Gosub LABEL009
  201.             Gosub LABEL006
  202.             INT010 = INT003 + 4
  203.             If (KInkey() == " ") Goto LABEL014
  204.             If (KInkey() == "") Goto LABEL016
  205.         Next
  206.         Goto LABEL015
  207.         :LABEL006
  208.         If (KInkey() == " ") Goto LABEL014
  209.         If (KInkey() == "") Goto LABEL015
  210.         STRING009 = STRING028
  211.         INT016 = 1
  212.         INT015 = INT009 + INT019
  213.         INT010 = INT003 + 6
  214.         INT020 = 2
  215.         Gosub LABEL008
  216.         Return
  217.         :LABEL007
  218.         AnsiPos INT015, INT010
  219.         Print STRING009
  220.         Return
  221.         :LABEL008
  222.         If (INT016 == 1) STRING004 = "@X08"
  223.         If (INT016 == 2) STRING004 = "@X07"
  224.         If (INT016 == 3) STRING004 = "@X0F"
  225.         If (INT016 == 4) STRING004 = "@X08"
  226.         If (INT016 == 5) STRING004 = "@X07"
  227.         AnsiPos INT015, INT010
  228.         If (INT014 == 1) Print STRING004 + STRING003
  229.         If (INT014 == 2) Print STRING004 + STRING009
  230.         INT016 = INT016 + 1
  231.         If (INT016 == 6) Return
  232.         Delay INT020
  233.         Goto LABEL008
  234.         :LABEL009
  235.         If (INT016 == 1) STRING004 = "@X0F"
  236.         If (INT016 == 2) STRING004 = "@X07"
  237.         If (INT016 == 3) STRING004 = "@X08"
  238.         AnsiPos INT015, INT010
  239.         Print STRING004 + STRING009
  240.         INT016 = INT016 + 1
  241.         If (INT016 == 4) Then
  242.             AnsiPos INT015, INT010
  243.             Print Space(Len(STRING002))
  244.             Return
  245.         Endif
  246.         Delay INT020
  247.         Goto LABEL009
  248.         :LABEL010
  249.         STRING006 = Inkey()
  250.         If (STRING006 <> "") Goto LABEL011
  251.         Goto LABEL010
  252.         :LABEL011
  253.         If (STRING006 == Chr(27)) Goto LABEL019
  254.         If (STRING006 == Chr(13)) Goto LABEL013
  255.         If (Left(STRING006, 3) == "ALT") Goto LABEL010
  256.         If (Left(STRING006, 3) == "CTR") Goto LABEL010
  257.         If (STRING006 == "INS") Goto LABEL010
  258.         If (STRING006 == "BADKEY") Goto LABEL010
  259.         If (STRING006 == "RIGHT") Goto LABEL010
  260.         If (STRING006 == "LEFT") Goto LABEL010
  261.         If (STRING006 == "DOWN") Goto LABEL010
  262.         If (STRING006 == "DEL") Goto LABEL010
  263.         If (STRING006 == "END") Goto LABEL010
  264.         If (STRING006 == "HOME") Goto LABEL010
  265.         If (STRING006 == "PGDN") Goto LABEL010
  266.         If (STRING006 == "PGUP") Goto LABEL010
  267.         If (STRING006 <> Chr(8)) Then
  268.             Goto LABEL012
  269.         Else
  270.             INT011 = INT011 - 1
  271.             If (INT011 <= -1) Then
  272.                 INT011 = 0
  273.                 Goto LABEL010
  274.             Else
  275.                 AnsiPos INT011 + INT006, INT010
  276.                 Print "·"
  277.                 AnsiPos INT011 + INT006, INT010
  278.                 Goto LABEL010
  279.             Endif
  280.         Endif
  281.         :LABEL012
  282.         If (INT011 == INT017 + 1) Goto LABEL010
  283.         AnsiPos INT011 + INT006, INT010
  284.         Print STRING017 + STRING006
  285.         INT011 = INT011 + 1
  286.         Goto LABEL010
  287.         :LABEL013
  288.         STRING001 = ScrText(INT006, INT010, INT011, 0)
  289.         If (Len(STRING001) >= INT013) Then
  290.             Log "Paging reason : " + STRING001, 1
  291.         Else
  292.             Goto LABEL004
  293.         Endif
  294.         INT010 = 23
  295.         INT015 = 0
  296.         AnsiPos INT015, INT010
  297.         ClrEol
  298.         If (STRING020 == "NO") Goto LABEL005
  299.         If (STRING020 == "YES") Goto LABEL000
  300.         INT010 = INT003 + 4
  301.         AnsiPos 0, INT010
  302.         ClrEol
  303.         SaveScrn
  304.         STRING002 = StripAtx(STRING011)
  305.         INT021 = 40 - Len(STRING002) / 2
  306.         INT015 = INT021
  307.         AnsiPos INT015, INT010
  308.         Print STRING011
  309.         STRING011 = "@X08THe S@X07YSoP H@X0FaS CHoo@X07SeN@X09 @X0F[@X09" + STRING022 + " SeCoNDS@X0F] @X07aS Pa@X0FGiNG DuRa@X08TioN...@X07PLEaSe@X0F W8!"
  310.         STRING002 = StripAtx(STRING011)
  311.         INT021 = 40 - Len(STRING002) / 2
  312.         INT015 = INT021
  313.         AnsiPos INT015, INT010 + 1
  314.         Print STRING011
  315.         AnsiPos INT015, INT010 + 2
  316.         STRING007 = STRING023 + " " + STRING021 + " " + STRING022 + " " + Chr(34) + U_Name() + Chr(34) + " " + I2S(CurSec(), 10) + " " + Chr(34) + STRING001 + Chr(34)
  317.         Shell 1, STRING008, "copy " + PPEPath() + "ss3.cfg /Y", " >nul"
  318.         Shell 0, STRING008, PPEPath() + "tlplay.exe", STRING007
  319.         If (STRING008 == 201) Goto LABEL014
  320.         If (STRING008 <> 201) Then
  321.             RestScrn
  322.         Else
  323.             :LABEL014
  324.             Cls
  325.             DispStr "!" + STRING005
  326.             Goto LABEL019
  327.         Endif
  328.         :LABEL015
  329.         INT010 = INT003 + 6
  330.         INT015 = 0
  331.         AnsiPos INT015, INT010
  332.         ClrEol
  333.         INT010 = INT003 + 3
  334.         INT015 = 28
  335.         AnsiPos INT015, INT010
  336.         InputStr "@X0FI@X07s @X08it an emergency ", STRING025, 9, 1, "YNyn", 0
  337.         If ((STRING025 == "n") || (STRING025 == "N")) Then
  338.             Goto LABEL016
  339.         Else
  340.             Log "Trying to make an emergency page !!", 1
  341.             INT010 = INT003 + 2
  342.             INT015 = 0
  343.             AnsiPos INT015, INT010
  344.             If (Exist(PPEPath() + STRING013)) DispFile PPEPath() + STRING013, 4 + 2 + 1
  345.             INT010 = INT003 + 3
  346.             INT015 = (80 - Len(STRING024) - 29) / 2
  347.             AnsiPos INT015, INT010
  348.             InputStr "Enter the emergency password ", STRING026, 9, Len(STRING024), Mask_Pwd(), 0
  349.             INT010 = INT003 + 2
  350.             INT015 = 0
  351.             AnsiPos INT015, INT010
  352.             If (Exist(PPEPath() + STRING013)) DispFile PPEPath() + STRING013, 4 + 2 + 1
  353.             If (STRING026 == STRING024) Then
  354.                 Log "Correct emergency password !", 1
  355.                 INT010 = INT003 + 3
  356.                 INT015 = 22
  357.                 AnsiPos INT015, INT010
  358.                 Print "@X08[@X09CoRReCT PaSSWoRD, eMeRGeNCY PaGiNG !@X08]"
  359.                 If (KInkey() == " ") Goto LABEL014
  360.                 If (KInkey() == "") Goto LABEL016
  361.                 For INT019 = 0 To 20
  362.                     Gosub LABEL018
  363.                     If (KInkey() == " ") Goto LABEL014
  364.                     If (KInkey() == "") Goto LABEL016
  365.                 Next
  366.                 Goto LABEL016
  367.             Else
  368.                 Log "Incorrect emergency password, User tried : " + STRING026 + " !", 1
  369.                 INT010 = INT003 + 3
  370.                 INT015 = 20
  371.                 AnsiPos INT015, INT010
  372.                 Print "@X08[@X09iNCoRReCT PaSSWoRD, THiNK BeTTeR NeXT TiME !@X08]"
  373.                 Goto LABEL016
  374.             Endif
  375.         Endif
  376.         Goto LABEL019
  377.     Endif
  378.     :LABEL016
  379.     Cls
  380.     If (Exist(PPEPath() + STRING015)) DispFile PPEPath() + STRING015, 4 + 2 + 1
  381.     Wait
  382.     Goto LABEL019
  383.     :LABEL017
  384.     Delay 2
  385.     Sound 220
  386.     Delay 2
  387.     Sound 440
  388.     Delay 2
  389.     Sound 880
  390.     Delay 2
  391.     Sound 440
  392.     Delay 2
  393.     Sound 220
  394.     Delay 2
  395.     Sound 0
  396.     Return
  397.     :LABEL018
  398.     Delay 2
  399.     Sound 220
  400.     Delay 2
  401.     Sound 880
  402.     Delay 2
  403.     Sound 765
  404.     Delay 2
  405.     Sound 320
  406.     Delay 2
  407.     Sound 217
  408.     Delay 2
  409.     Sound 0
  410.     Return
  411.     :LABEL019
  412.     U_PageLen = 24
  413.     PutUser
  414.     Cls
  415.     Print "@X08[@X07THaNKS USiNG TLPaGeR V1.0 (C) D/▌Rk M00N TRiLoXY'95@X08]"
  416.     End
  417.  
  418. ;------------------------------------------------------------------------------
  419.  
  420.     Procedure PROC001()
  421.  
  422.  
  423.     EndProc
  424.  
  425.  
  426. ;------------------------------------------------------------------------------
  427. ;
  428. ; Usage report (before postprocessing)
  429. ;
  430. ; ■ Statements used :
  431. ;
  432. ;    1       End
  433. ;    5       Cls
  434. ;    4       ClrEol
  435. ;    2       Wait
  436. ;    75      Goto 
  437. ;    86      Let 
  438. ;    17      Print 
  439. ;    3       PrintLn 
  440. ;    59      If 
  441. ;    7       DispFile 
  442. ;    2       FOpen 
  443. ;    3       FClose 
  444. ;    26      FGet 
  445. ;    2       GetUser
  446. ;    2       PutUser
  447. ;    7       Log 
  448. ;    2       InputStr 
  449. ;    7       Gosub 
  450. ;    6       Return
  451. ;    16      Delay 
  452. ;    2       Shell 
  453. ;    1       DispStr 
  454. ;    30      AnsiPos 
  455. ;    1       SaveScrn
  456. ;    1       RestScrn
  457. ;    12      Sound 
  458. ;    2       SPrintLn 
  459. ;    1       FSeek 
  460. ;    1       FRead 
  461. ;    1       EndProc
  462. ;
  463. ;
  464. ; ■ Functions used :
  465. ;
  466. ;    1       -
  467. ;    6       /
  468. ;    90      +
  469. ;    11      -
  470. ;    46      ==
  471. ;    4       <>
  472. ;    3       <
  473. ;    3       <=
  474. ;    5       >=
  475. ;    11      !
  476. ;    4       &&
  477. ;    3       ||
  478. ;    8       Len(
  479. ;    2       Left()
  480. ;    1       Space()
  481. ;    2       Ferr()
  482. ;    7       Chr()
  483. ;    3       U_Name()
  484. ;    4       StripAtx()
  485. ;    1       Inkey()
  486. ;    1       Mask_Pwd()
  487. ;    15      PPEPath()
  488. ;    2       CurSec()
  489. ;    5       Exist()
  490. ;    1       I2S()
  491. ;    2       GetY()
  492. ;    10      KInkey()
  493. ;    1       ScrText()
  494. ;
  495. ;------------------------------------------------------------------------------
  496. ;
  497. ; Analysis flags : WS
  498. ;
  499. ; W - Write user ■ 5
  500. ;     Program writes a user record. Although this may be normal for a
  501. ;     User Editor, it may also be a way to modify an account level.
  502. ;     ■ Search for : PUTUSER
  503. ;
  504. ; S - Shell to DOS ■ 5
  505. ;     This may be normal if the PPE need to execute an external command,
  506. ;     but may be actually anything... nasty (formating HD, rebooting,...)
  507. ;     or usefull (sorting, maintenance,...). Check!
  508. ;     ■ Search for : SHELL
  509. ;
  510. ;------------------------------------------------------------------------------
  511. ;
  512. ; Postprocessing report
  513. ;
  514. ;    2       For/Next
  515. ;    0       While/EndWhile
  516. ;    9       If/Then or If/Then/Else
  517. ;    0       Select Case
  518. ;
  519. ;------------------------------------------------------------------------------
  520. ;                 AEGiS Corp - Break the routines, code against the machines!
  521. ;------------------------------------------------------------------------------
  522.