home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / S / SCUMLC16.ZIP / LASTCALL.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-09-12  |  8KB  |  466 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.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     Boolean  BOOLEAN005
  24.     Boolean  BOOLEAN006
  25.     Boolean  BOOLEAN007
  26.     Boolean  BOOLEAN008
  27.     Boolean  BOOLEAN009
  28.     Boolean  BOOLEAN010
  29.     Integer  INTEGER001
  30.     Integer  INTEGER002
  31.     Integer  INTEGER003
  32.     Integer  INTEGER004
  33.     Integer  INTEGER005
  34.     Integer  INTEGER006
  35.     Integer  INTEGER007
  36.     Integer  INTEGER008
  37.     Integer  INTEGER009
  38.     Integer  INTEGER010
  39.     String   STRING001
  40.     String   STRING002
  41.     String   STRING003
  42.     String   STRING004
  43.     String   STRING005
  44.     String   STRING006
  45.     String   STRING007
  46.     String   STRING008
  47.     String   TSTRING009(25)
  48.     String   STRING010
  49.     String   STRING011
  50.     String   STRING012
  51.     String   STRING013
  52.     String   STRING014
  53.     String   STRING015
  54.     String   STRING016
  55.     String   STRING017
  56.     String   STRING018
  57.     String   STRING019
  58.     String   STRING020
  59.     String   STRING021
  60.     String   STRING022
  61.     String   STRING023
  62.     String   STRING024
  63.     String   STRING025
  64.     String   TSTRING026(500)
  65.     String   TSTRING027(500)
  66.     String   TSTRING028(500)
  67.     String   TSTRING029(11)
  68.     String   STRING030
  69.     String   STRING031
  70.     String   STRING032
  71.     String   STRING033
  72.     String   STRING034
  73.     String   STRING035
  74.     String   STRING036
  75.     String   STRING037
  76.     String   STRING038
  77.     String   STRING039
  78.  
  79. ;------------------------------------------------------------------------------
  80.  
  81.     STRING023 = PPEPath() + "EVIL.LST"
  82.     STRING024 = PPEPath() + "GOOD.LST"
  83.     STRING025 = PPEPath() + "TOPS.LST"
  84.     STRING003 = PPEPath() + "LASTCALL.BLT"
  85.     STRING004 = PPEPath() + "LASTCALL.CNF"
  86.     STRING006 = PPEPath() + "LASTCALL.FTR"
  87.     INTEGER001 = ReadLine(STRING004, 1)
  88.     STRING015 = ReadLine(STRING004, 2)
  89.     INTEGER010 = ReadLine(STRING004, 3)
  90.     INTEGER004 = ReadLine(STRING004, 4)
  91.     STRING022 = ReadLine(STRING004, 5)
  92.     STRING038 = ReadLine(STRING004, 6)
  93.     INTEGER007 = ReadLine(STRING004, 7)
  94.     If (STRING022 == "YES") Then
  95.         STRING005 = PPEPath() + "HEADER.1"
  96.     Else
  97.         STRING005 = PPEPath() + "HEADER.2"
  98.     Endif
  99.     STRING001 = TokenStr()
  100.     Tokenize STRING001
  101.     GetToken STRING002
  102.     GetUser
  103.     STRING013 = U_Name()
  104.     If (Len(STRING013) > 8) Then
  105.         STRING013 = Left(STRING013, 8)
  106.         STRING013 = ReplaceStr(STRING013, ".", "")
  107.         STRING013 = ReplaceStr(STRING013, " ", "")
  108.     ElseIf (Len(STRING013) <= 8) Then
  109.         STRING013 = ReplaceStr(STRING013, ".", "")
  110.         STRING013 = ReplaceStr(STRING013, " ", "")
  111.     Endif
  112.     If (STRING002 == "/192") Then
  113.         Goto LABEL001
  114.     Endif
  115.     If (STRING038 == "1") STRING039 = PPEPath() + "LASTCALL.1"
  116.     If (STRING038 == "2") STRING039 = PPEPath() + "LASTCALL.2"
  117.     If (STRING038 == "3") STRING039 = PPEPath() + "LASTCALL.3"
  118.     If (STRING038 == "4") STRING039 = PPEPath() + "LASTCALL.4"
  119.     If (STRING038 == "5") STRING039 = PPEPath() + "LASTCALL.5"
  120.     Cls
  121.     DispFile STRING039, 2 + 1
  122.     DispFile STRING005, 2 + 1
  123.     DispFile STRING003, 2 + 1
  124.     DispFile STRING006, 2 + 1
  125.     Wait
  126.     GetUser
  127.     STRING008 = PPEPath() + STRING013 + ".DAT"
  128.     FCreate 1, STRING008, 2, 0
  129.     FPutLn 1, U_Name()
  130.     FPutLn 1, U_Ful()
  131.     FPutLn 1, U_Fdl()
  132.     FPutLn 1, U_MsgWr()
  133.     FPutLn 1, U_MsgRd()
  134.     FPutLn 1, U_Stat(2)
  135.     FPutLn 1, U_Stat(3)
  136.     FPutLn 1, Time()
  137.     FPutLn 1, U_Bul()
  138.     FPutLn 1, U_Bdl()
  139.     FPutLn 1, U_LDate()
  140.     FPutLn 1, 0
  141.     FClose 1
  142.     Goto LABEL020
  143.     :LABEL001
  144.     GetUser
  145.     STRING011 = U_Name()
  146.     STRING016 = Carrier()
  147.     STRING019 = PcbNode()
  148.     STRING017 = Left(TimeAp(Time()), 5)
  149.     INTEGER003 = CurSec()
  150.     STRING012 = U_City
  151.     STRING020 = PCBMac("@BYTERATIO@")
  152.     STRING018 = CurSec()
  153.     If (Upper(STRING011) == STRING015) Then
  154.         Goto LABEL019
  155.     Endif
  156.     If (LoggedOn()) Goto LABEL002
  157.     BOOLEAN001 = 0
  158.     BOOLEAN002 = 0
  159.     BOOLEAN003 = 0
  160.     BOOLEAN004 = 0
  161.     BOOLEAN006 = 0
  162.     BOOLEAN005 = 0
  163.     BOOLEAN007 = 0
  164.     Goto LABEL019
  165.     :LABEL002
  166.     If (Len(STRING011) > 15) Then
  167.         STRING011 = Left(STRING011, 15)
  168.     Endif
  169.     If (Len(STRING012) > 18) Then
  170.         STRING012 = Left(STRING012, 18)
  171.     Endif
  172.     STRING008 = PPEPath() + STRING013 + ".DAT"
  173.     INTEGER005 = ReadLine(STRING008, 9)
  174.     FOpen 1, STRING008, 2, 0
  175.     :LABEL003
  176.     If (BOOLEAN009) Goto LABEL004
  177.     FGet 1, TSTRING029(INTEGER008)
  178.     If (Len(TSTRING029(INTEGER008)) == 0) BOOLEAN009 = 1
  179.     Inc INTEGER008
  180.     Goto LABEL003
  181.     :LABEL004
  182.     FClose 1
  183.     If (Exist(STRING008)) Delete STRING008
  184.     BOOLEAN001 = 0
  185.     BOOLEAN002 = 0
  186.     BOOLEAN003 = 0
  187.     BOOLEAN004 = 0
  188.     BOOLEAN006 = 0
  189.     BOOLEAN005 = 0
  190.     BOOLEAN007 = 0
  191.     If (U_Ful() > TSTRING029(1)) BOOLEAN001 = 1
  192.     If (U_Fdl() > TSTRING029(2)) BOOLEAN002 = 1
  193.     If (U_MsgWr() > TSTRING029(3)) BOOLEAN003 = 1
  194.     If (U_MsgRd() > TSTRING029(4)) BOOLEAN004 = 1
  195.     If (U_Stat(2) > TSTRING029(5)) BOOLEAN006 = 1
  196.     If (U_Stat(3) > TSTRING029(6)) BOOLEAN005 = 1
  197.     If (CDOn()) Goto LABEL005
  198.     If (!OnLocal()) BOOLEAN007 = 1
  199.     :LABEL005
  200.     If (BOOLEAN001) Then
  201.         STRING031 = "@X0FU"
  202.     Else
  203.         STRING031 = "@X08-"
  204.     Endif
  205.     If (BOOLEAN002) Then
  206.         STRING032 = "@X0FD"
  207.     Else
  208.         STRING032 = "@X08-"
  209.     Endif
  210.     If (BOOLEAN003) Then
  211.         STRING033 = "@X0FW"
  212.     Else
  213.         STRING033 = "@X08-"
  214.     Endif
  215.     If (BOOLEAN004) Then
  216.         STRING034 = "@X0FR"
  217.     Else
  218.         STRING034 = "@X08-"
  219.     Endif
  220.     If (BOOLEAN005) Then
  221.         STRING035 = "@X0FC"
  222.     Else
  223.         STRING035 = "@X08-"
  224.     Endif
  225.     If (BOOLEAN006) Then
  226.         STRING036 = "@X0FP"
  227.     Else
  228.         STRING036 = "@X08-"
  229.     Endif
  230.     If (BOOLEAN007) Then
  231.         STRING037 = "@X0FL"
  232.     Else
  233.         STRING037 = "@X08-"
  234.     Endif
  235.     STRING030 = "@X08[" + STRING031 + STRING032 + STRING033 + STRING034 + STRING035 + STRING036 + STRING037 + "@X08]"
  236.     STRING016 = Left(STRING016, 3)
  237.     STRING016 = Left(STRING016, 2) + "." + Right(STRING016, 1)
  238.     STRING017 = Replace(STRING017, "0", "O")
  239.     If ((Len(STRING018) < 3) && (Len(STRING018) > 1)) Then
  240.         STRING018 = "O" + STRING018
  241.         STRING018 = Replace(STRING018, "0", "O")
  242.     Else
  243.         Select Case (Len(STRING018))
  244.             Case 3
  245.                 STRING018 = Replace(STRING018, "0", "O")
  246.             Case 1
  247.                 STRING018 = "OO" + STRING018
  248.                 STRING018 = Replace(STRING018, "0", "O")
  249.             Endif
  250.     End Select
  251.     Select Case (STRING022)
  252.         Case "YES"
  253.             BOOLEAN010 = 1
  254.             Goto LABEL007
  255.         Case "NO"
  256.             BOOLEAN010 = 0
  257.     End Select
  258.     :LABEL006
  259.     INTEGER006 = 0
  260.     INTEGER006 = U_Bul() - INTEGER005
  261.     STRING021 = INTEGER006
  262.     STRING021 = Replace(STRING021, "0", "O")
  263.     STRING021 = "@X08[@X0F" + STRING021 + "@X08]"
  264.     Goto LABEL017
  265.     :LABEL007
  266.     If (INTEGER003 >= INTEGER004) Then
  267.         Goto LABEL014
  268.     ElseIf (INTEGER003 > INTEGER010) Then
  269.         Goto LABEL011
  270.     ElseIf (INTEGER003 <= INTEGER010) Then
  271.         Goto LABEL008
  272.     Endif
  273.     :LABEL008
  274.     FOpen 1, STRING023, 0, 0
  275.     :LABEL009
  276.     If (BOOLEAN008) Goto LABEL010
  277.     FGet 1, TSTRING026(INTEGER009)
  278.     If (Len(TSTRING026(INTEGER009)) == 0) BOOLEAN008 = 1
  279.     Inc INTEGER009
  280.     Goto LABEL009
  281.     :LABEL010
  282.     FClose 1
  283.     STRING010 = TSTRING026(Random(INTEGER009) + 1)
  284.     If (Len(STRING010) > 14) Then
  285.         STRING010 = Left(STRING010, 14)
  286.     Endif
  287.     Goto LABEL017
  288.     :LABEL011
  289.     FOpen 1, STRING024, 0, 0
  290.     :LABEL012
  291.     If (BOOLEAN008) Goto LABEL013
  292.     FGet 1, TSTRING027(INTEGER009)
  293.     If (Len(TSTRING027(INTEGER009)) == 0) BOOLEAN008 = 1
  294.     Inc INTEGER009
  295.     Goto LABEL012
  296.     :LABEL013
  297.     FClose 1
  298.     STRING010 = TSTRING027(Random(INTEGER009) + 1)
  299.     If (Len(STRING010) > 14) Then
  300.         STRING010 = Left(STRING010, 14)
  301.     Endif
  302.     Goto LABEL017
  303.     :LABEL014
  304.     FOpen 1, STRING025, 0, 0
  305.     :LABEL015
  306.     If (BOOLEAN008) Goto LABEL016
  307.     FGet 1, TSTRING028(INTEGER009)
  308.     If (Len(TSTRING028(INTEGER009)) == 0) BOOLEAN008 = 1
  309.     Inc INTEGER009
  310.     Goto LABEL015
  311.     :LABEL016
  312.     FClose 1
  313.     STRING010 = TSTRING028(Random(INTEGER009) + 1)
  314.     If (Len(STRING010) > 14) Then
  315.         STRING010 = Left(STRING010, 14)
  316.     Endif
  317.     :LABEL017
  318.     Select Case (STRING038)
  319.         Case "1"
  320.             If (BOOLEAN010) Then
  321.                 STRING014 = "@POS:1@@X07" + STRING018 + "@POS:5@@X0F" + STRING011 + "@POS:21@@X01" + STRING012 + "@POS:40@@X09" + STRING017 + "@POS:46@@X07" + STRING019 + "@POS:48@@X01" + STRING016 + "@POS:53@" + STRING030 + "@POS:63@@X0F" + STRING010
  322.             Else
  323.                 STRING014 = "@POS:1@@X07" + STRING018 + "@POS:5@@X0F" + STRING011 + "@POS:21@@X01" + STRING012 + "@POS:40@@X09" + STRING017 + "@POS:46@@X07" + STRING019 + "@POS:48@@X01" + STRING016 + "@POS:53@" + STRING030 + "@POS:63@@X07" + STRING020 + "@POS:69@" + STRING021
  324.             Endif
  325.         Case "2"
  326.             If (BOOLEAN010) Then
  327.                 STRING014 = "@POS:1@@X07" + STRING018 + "@POS:5@@X0F" + STRING011 + "@POS:21@@X04" + STRING012 + "@POS:40@@X0C" + STRING017 + "@POS:46@@X07" + STRING019 + "@POS:48@@X04" + STRING016 + "@POS:53@" + STRING030 + "@POS:63@@X0F" + STRING010
  328.             Else
  329.                 STRING014 = "@POS:1@@X07" + STRING018 + "@POS:5@@X0F" + STRING011 + "@POS:21@@X04" + STRING012 + "@POS:40@@X0C" + STRING017 + "@POS:46@@X07" + STRING019 + "@POS:48@@X04" + STRING016 + "@POS:53@" + STRING030 + "@POS:63@@X07" + STRING020 + "@POS:69@" + STRING021
  330.             Endif
  331.         Case "3"
  332.             If (BOOLEAN010) Then
  333.                 STRING014 = "@POS:1@@X07" + STRING018 + "@POS:5@@X0F" + STRING011 + "@POS:21@@X05" + STRING012 + "@POS:40@@X0D" + STRING017 + "@POS:46@@X07" + STRING019 + "@POS:48@@X05" + STRING016 + "@POS:53@" + STRING030 + "@POS:63@@X0F" + STRING010
  334.             Else
  335.                 STRING014 = "@POS:1@@X07" + STRING018 + "@POS:5@@X0F" + STRING011 + "@POS:21@@X05" + STRING012 + "@POS:40@@X0D" + STRING017 + "@POS:46@@X07" + STRING019 + "@POS:48@@X05" + STRING016 + "@POS:53@" + STRING030 + "@POS:63@@X07" + STRING020 + "@POS:69@" + STRING021
  336.             Endif
  337.         Case "4"
  338.             If (BOOLEAN010) Then
  339.                 STRING014 = "@POS:1@@X0F" + STRING018 + "@POS:5@@X07" + STRING011 + "@POS:21@@X08" + STRING012 + "@POS:40@@X07" + STRING017 + "@POS:46@@X0F" + STRING019 + "@POS:48@@X07" + STRING016 + "@POS:53@" + STRING030 + "@POS:63@@X0F" + STRING010
  340.             Else
  341.                 STRING014 = "@POS:1@@X0F" + STRING018 + "@POS:5@@X07" + STRING011 + "@POS:21@@X08" + STRING012 + "@POS:40@@X07" + STRING017 + "@POS:46@@X0F" + STRING019 + "@POS:48@@X07" + STRING016 + "@POS:53@" + STRING030 + "@POS:63@@X07" + STRING020 + "@POS:69@" + STRING021
  342.             Endif
  343.         Case "5"
  344.             If (BOOLEAN010) Then
  345.                 STRING014 = "@POS:1@@X07" + STRING018 + "@POS:5@@X0F" + STRING011 + "@POS:21@@X02" + STRING012 + "@POS:40@@X0A" + STRING017 + "@POS:46@@X07" + STRING019 + "@POS:48@@X02" + STRING016 + "@POS:53@" + STRING030 + "@POS:63@@X0F" + STRING010
  346.                 Goto LABEL018
  347.             Endif
  348.             STRING014 = "@POS:1@@X07" + STRING018 + "@POS:5@@X0F" + STRING011 + "@POS:21@@X02" + STRING012 + "@POS:40@@X0A" + STRING017 + "@POS:46@@X07" + STRING019 + "@POS:48@@X02" + STRING016 + "@POS:53@" + STRING030 + "@POS:63@@X07" + STRING020 + "@POS:69@" + STRING021
  349.     End Select
  350.     :LABEL018
  351.     FOpen 1, STRING003, 2, 0
  352.     INTEGER002 = 1
  353.     While (!Ferr(1) && (INTEGER002 <= INTEGER001)) Do
  354.         FGet 1, STRING007
  355.         TSTRING009(INTEGER002) = STRING007
  356.         Inc INTEGER002
  357.     EndWhile
  358.     FClose 1
  359.     FCreate 1, STRING003, 2, 0
  360.     If (INTEGER002 >= INTEGER001) Then
  361.         INTEGER002 = 1
  362.         While ((Len(TSTRING009(INTEGER002 + 1)) > 0) && (INTEGER002 <= INTEGER001)) Do
  363.             FPutLn 1, TSTRING009(INTEGER002 + 1)
  364.             INTEGER002 = INTEGER002 + 1
  365.         EndWhile
  366.     Else
  367.         INTEGER002 = 1
  368.         While (Len(TSTRING009(INTEGER002)) > 0) Do
  369.             FPutLn 1, TSTRING009(INTEGER002)
  370.             Inc INTEGER002
  371.         EndWhile
  372.     Endif
  373.     FPutLn 1, STRING014
  374.     FClose 1
  375.     Return
  376.     :LABEL019
  377.     STRING008 = PPEPath() + STRING013 + ".DAT"
  378.     If (Exist(STRING008)) Delete STRING008
  379.     :LABEL020
  380.     End
  381.  
  382. ;------------------------------------------------------------------------------
  383. ;
  384. ; Usage report (before postprocessing)
  385. ;
  386. ; ■ Statements used :
  387. ;
  388. ;    1       End
  389. ;    1       Cls
  390. ;    1       Wait
  391. ;    90      Goto 
  392. ;    117     Let 
  393. ;    63      If 
  394. ;    4       DispFile 
  395. ;    2       FCreate 
  396. ;    5       FOpen 
  397. ;    7       FClose 
  398. ;    5       FGet 
  399. ;    15      FPutLn 
  400. ;    3       GetUser
  401. ;    2       Delete 
  402. ;    1       Return
  403. ;    6       Inc 
  404. ;    1       Tokenize 
  405. ;    1       GetToken 
  406. ;
  407. ;
  408. ; ■ Functions used :
  409. ;
  410. ;    203     +
  411. ;    1       -
  412. ;    21      ==
  413. ;    1       <
  414. ;    4       <=
  415. ;    16      >
  416. ;    2       >=
  417. ;    47      !
  418. ;    3       &&
  419. ;    17      Len(
  420. ;    1       Upper()
  421. ;    9       Left()
  422. ;    1       Right()
  423. ;    1       Ferr()
  424. ;    3       Random()
  425. ;    2       Time()
  426. ;    3       U_Name()
  427. ;    1       U_LDate()
  428. ;    2       U_Ful()
  429. ;    2       U_Fdl()
  430. ;    1       U_Bdl()
  431. ;    2       U_Bul()
  432. ;    1       TimeAp()
  433. ;    5       Replace()
  434. ;    16      PPEPath()
  435. ;    2       U_MsgRd()
  436. ;    2       U_MsgWr()
  437. ;    1       PcbNode()
  438. ;    8       ReadLine()
  439. ;    1       OnLocal()
  440. ;    2       CurSec()
  441. ;    2       Exist()
  442. ;    1       Carrier()
  443. ;    1       TokenStr()
  444. ;    1       CDOn()
  445. ;    4       U_Stat()
  446. ;    1       LoggedOn()
  447. ;    4       ReplaceStr()
  448. ;    1       PCBMac()
  449. ;
  450. ;------------------------------------------------------------------------------
  451. ;
  452. ; Analysis flags : No flag
  453. ;
  454. ;------------------------------------------------------------------------------
  455. ;
  456. ; Postprocessing report
  457. ;
  458. ;    0       For/Next
  459. ;    3       While/EndWhile
  460. ;    27      If/Then or If/Then/Else
  461. ;    3       Select Case
  462. ;
  463. ;------------------------------------------------------------------------------
  464. ;                 AEGiS Corp - Break the routines, code against the machines!
  465. ;------------------------------------------------------------------------------
  466.