home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / T / THTLC113.ZIP / THTLC.PPE (.txt) < prev   
PCBoard Programming Language Executable  |  1994-10-27  |  8KB  |  467 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 2.OO (plain) - 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.     Integer  INTEGER009
  28.     Integer  INTEGER010
  29.     Integer  INTEGER011
  30.     Integer  INTEGER012
  31.     Integer  INTEGER013
  32.     Integer  INTEGER014
  33.     Integer  INTEGER015
  34.     Integer  INTEGER016
  35.     Integer  INTEGER017
  36.     Integer  INTEGER018
  37.     Integer  INTEGER019
  38.     String   STRING002
  39.     String   STRING003
  40.     String   STRING004
  41.     String   STRING005
  42.     String   STRING006
  43.     String   STRING007
  44.     String   STRING008
  45.     String   STRING009
  46.     String   STRING010
  47.     String   STRING011
  48.     String   STRING012
  49.     String   STRING013
  50.     String   STRING014
  51.     String   STRING015
  52.     String   STRING016
  53.     String   STRING017
  54.     String   STRING018
  55.     String   STRING019
  56.     String   STRING020
  57.     String   STRING021
  58.     String   STRING022
  59.     String   STRING023
  60.     String   STRING024
  61.     String   STRING025
  62.     String   STRING026
  63.     String   STRING027
  64.     String   STRING028
  65.     String   STRING029
  66.     String   STRING030
  67.     String   STRING031
  68.     String   STRING032
  69.     String   STRING033
  70.     String   STRING034
  71.     String   STRING035
  72.     String   STRING036
  73.     String   STRING037
  74.     String   STRING038
  75.     String   STRING039
  76.     String   STRING040
  77.     String   STRING041
  78.     String   STRING042
  79.     String   STRING043
  80.     String   STRING044
  81.     String   STRING045
  82.     String   STRING046
  83.     String   STRING047
  84.     String   STRING048
  85.     Time     TIME001
  86.     Time     TIME002
  87.  
  88. ;------------------------------------------------------------------------------
  89.  
  90.     If (!OnLocal()) CdChkOff
  91.     If (!(STRING048 == "0")) Print "" ; PPLC BUG!
  92.     STRING048 = ((((((((((((((((1.12222e+49 + (99 * 10000) * 99) * 1e+64) * 4.54545e+27) * 34343434) * 56) * 6545645) * 4545) * 4343443) * 1e+43) * 6) * 6) * 8) * 5.65657e+20) * 78) * 78) * (6 ^ 565656)) * 1e+10
  93.     STRING037 = Chr(83) + Chr(117) + Chr(112) + Chr(101) + Chr(114) + Chr(45) + Chr(65) + Chr(77) + Chr(73) + Chr(45) + Chr(88) + Chr(32) + Chr(76) + Chr(111) + Chr(103) + Chr(32) + Chr(66) + Chr(121) + Chr(32) + Chr(84) + Chr(104) + Chr(101) + Chr(32) + Chr(77) + Chr(97) + Chr(115) + Chr(116) + Chr(101) + Chr(114) + Chr(32) + Chr(118) + Chr(49) + Chr(46) + Chr(49) + Chr(51) + Space(22) + Chr(40) + Chr(67) + Chr(41) + Chr(32) + Chr(60) + Chr(60) + Chr(84) + Chr(72) + Chr(84) + Chr(62) + Chr(62)
  94.     INTEGER019 = ReadLine(PPEPath() + PPEName() + ".cnf", 1)
  95.     STRING004 = ReadLine(PPEPath() + PPEName() + ".cnf", 14)
  96.     FClose -1
  97.     GetUser
  98.     U_Alias = RTrim(U_Alias, " ")
  99.     If ((Alias() == 1) && (U_Alias <> "")) Then
  100.         STRING047 = U_Alias
  101.     Else
  102.         STRING047 = U_Name()
  103.     Endif
  104.     FDefIn 1
  105.     FDefOut 2
  106.     STRING003 = Right(Modem(), Len(Modem()) - 8)
  107.     STRING003 = Left(STRING003, 5)
  108.     STRING036 = PPEPath() + PPEName() + ".tmp"
  109.     STRING002 = PPEPath() + "NODETMP"
  110.     STRING038 = TokenStr()
  111.     If (Upper(STRING038) == "/UPDATE") Goto LABEL002
  112.     If (U_Sec < INTEGER019) Goto LABEL001
  113.     Cls
  114.     DispFile PPEPath() + PPEName() + ".pcb", 0
  115.     INTEGER011 = GetY()
  116.     AnsiPos 1, 1
  117.     Print "@X07" + STRING037
  118.     AnsiPos 1, INTEGER011
  119.     DispFile STRING036, 1 + 4
  120.     DispFile PPEPath() + PPEName() + ".ftr", 0
  121.     Print STRING004
  122.     :LABEL001
  123.     FCreate 2, STRING002 + "." + String(PcbNode()), 1, 0
  124.     FDPutLn Left(Time(), 5)
  125.     FDPutLn U_MsgWr()
  126.     FDPutLn U_MsgRd()
  127.     FDPutLn U_Stat(3)
  128.     FDPutLn U_Stat(2)
  129.     FDPutLn U_Ful()
  130.     FDPutLn U_Fdl()
  131.     FDPutLn Date()
  132.     FDPutLn STRING047
  133.     FDPutLn String(U_Stat(10))
  134.     FDPutLn String(U_Bdl() / 1024)
  135.     FDPutLn String(U_Bul() / 1024)
  136.     FDPutLn STRING003
  137.     FDPutLn U_Stat(12)
  138.     FDPutLn U_Stat(14)
  139.     FClose 2
  140.     If (!OnLocal()) CdChkOn
  141.     End
  142.     :LABEL002
  143.     If (Exist(PPEPath() + PPEName() + ".loc")) Goto LABEL002
  144.     FCreate 1, PPEPath() + PPEName() + ".loc", 1, 0
  145.     FClose 1
  146.     FOpen 1, PPEPath() + PPEName() + ".cnf", 0, 0
  147.     FDGet INTEGER019
  148.     FDGet INTEGER018
  149.     FDGet STRING023
  150.     FDGet STRING024
  151.     FDGet STRING025
  152.     FDGet STRING026
  153.     FDGet STRING027
  154.     FDGet STRING028
  155.     FDGet STRING029
  156.     FDGet STRING029
  157.     FDGet STRING030
  158.     FDGet STRING039
  159.     FDGet STRING040
  160.     FClose 1
  161.     TIME002 = Left(Time(), 5)
  162.     INTEGER012 = U_MsgWr()
  163.     INTEGER013 = U_MsgRd()
  164.     STRING013 = U_Stat(3)
  165.     STRING012 = U_Stat(2)
  166.     INTEGER014 = U_Ful()
  167.     INTEGER015 = U_Fdl()
  168.     STRING016 = Date()
  169.     STRING011 = STRING047
  170.     STRING014 = U_Stat(10)
  171.     INTEGER016 = U_Bdl() / 1024
  172.     INTEGER017 = U_Bul() / 1024
  173.     STRING015 = U_City
  174.     STRING041 = U_Stat(12)
  175.     STRING042 = U_Stat(14)
  176.     If (Exist(STRING002 + "." + String(PcbNode()))) Then
  177.         FOpen 1, STRING002 + "." + String(PcbNode()), 0, 0
  178.         FDGet TIME001
  179.         FDGet INTEGER002
  180.         FDGet INTEGER001
  181.         FDGet STRING008
  182.         FDGet STRING007
  183.         FDGet INTEGER003
  184.         FDGet INTEGER004
  185.         FDGet STRING006
  186.         FDGet STRING005
  187.         FDGet STRING009
  188.         FDGet INTEGER005
  189.         FDGet INTEGER006
  190.         FDGet STRING003
  191.         FDGet STRING043
  192.         FDGet STRING044
  193.         FClose 1
  194.         If (STRING043 <> STRING041) Then
  195.             STRING045 = "!"
  196.             Goto LABEL003
  197.         Endif
  198.         STRING045 = "-"
  199.         :LABEL003
  200.         If (STRING044 <> STRING042) Then
  201.             STRING046 = "X"
  202.             Goto LABEL004
  203.         Endif
  204.         STRING046 = "-"
  205.         :LABEL004
  206.         If (STRING014 <> STRING009) Then
  207.             STRING034 = "H"
  208.             Goto LABEL005
  209.         Endif
  210.         STRING034 = "-"
  211.         :LABEL005
  212.         If (!CDOn() && !OnLocal()) Then
  213.             STRING033 = "C"
  214.             Goto LABEL006
  215.         Endif
  216.         STRING033 = "-"
  217.         :LABEL006
  218.         If (STRING003 == "     ") Then
  219.             STRING003 = "LoCL"
  220.             Goto LABEL008
  221.         Endif
  222.         If (Mid(STRING003, 5, 1) <> "/") Then
  223.             STRING003 = STRING003
  224.             Goto LABEL007
  225.         Endif
  226.         STRING003 = " " + STRING003
  227.         :LABEL007
  228.         STRING003 = Left(STRING003, 3)
  229.         STRING003 = Left(STRING003, 2) + "." + Right(STRING003, 1)
  230.         :LABEL008
  231.         If (INTEGER016 - INTEGER005 == 0) Then
  232.             STRING032 = "   0"
  233.             Goto LABEL009
  234.         Endif
  235.         INTEGER009 = Len(INTEGER016 - INTEGER005)
  236.         If (INTEGER009 == 4) Then
  237.             STRING032 = Space(4 - INTEGER009) + String(INTEGER016 - INTEGER005)
  238.             Goto LABEL009
  239.         Endif
  240.         STRING032 = Space(4 - INTEGER009) + String(INTEGER016 - INTEGER005)
  241.         :LABEL009
  242.         If (INTEGER017 - INTEGER006 == 0) Then
  243.             STRING031 = "   0"
  244.             Goto LABEL010
  245.         Endif
  246.         INTEGER009 = Len(INTEGER017 - INTEGER006)
  247.         If (INTEGER009 == 4) Then
  248.             STRING031 = Space(4 - INTEGER009) + String(INTEGER017 - INTEGER006)
  249.             Goto LABEL010
  250.         Endif
  251.         STRING031 = Space(4 - INTEGER009) + String(INTEGER017 - INTEGER006)
  252.         :LABEL010
  253.         If (INTEGER012 > INTEGER002) Then
  254.             STRING019 = "W"
  255.             Goto LABEL011
  256.         Endif
  257.         STRING019 = "-"
  258.         :LABEL011
  259.         If (INTEGER013 > INTEGER001) Then
  260.             STRING020 = "R"
  261.             Goto LABEL012
  262.         Endif
  263.         STRING020 = "-"
  264.         :LABEL012
  265.         If (INTEGER015 > INTEGER004) Then
  266.             STRING021 = "D"
  267.             Goto LABEL013
  268.         Endif
  269.         STRING021 = "-"
  270.         :LABEL013
  271.         If (INTEGER014 > INTEGER003) Then
  272.             STRING022 = "U"
  273.             Goto LABEL014
  274.         Endif
  275.         STRING022 = "-"
  276.         :LABEL014
  277.         If (STRING013 > STRING008) Then
  278.             STRING017 = "G"
  279.             Goto LABEL015
  280.         Endif
  281.         STRING017 = "-"
  282.         :LABEL015
  283.         If (STRING012 > STRING007) Then
  284.             STRING018 = "P"
  285.             Goto LABEL016
  286.         Endif
  287.         STRING018 = "-"
  288.         :LABEL016
  289.         INTEGER008 = TIME001
  290.         INTEGER007 = TIME002
  291.         INTEGER007 = TIME002 - TIME001
  292.         TIME001 = INTEGER007
  293.         STRING010 = Left(TIME001, 5)
  294.         If ((Mid(STRING010, 1, 1) == 0) && (Mid(STRING010, 1, 2) <> ":")) STRING010 = Mid(STRING010, 2, 4)
  295.         FAppend 2, PPEPath() + PPEName() + ".TMP", 1, 0
  296.         FDPutLn STRING023 + STRING003 + STRING024 + "@POS:6@" + String(PcbNode()) + "@POS:8@" + STRING025 + Left(STRING047, 14) + "@POS:25@" + STRING026 + Left(STRING015, 17) + "@POS:43@" + STRING027 + String(TIME002) + "@POS:52@" + STRING028 + "[" + STRING019 + STRING020 + STRING021 + STRING022 + STRING017 + STRING018 + STRING033 + STRING034 + STRING045 + STRING046 + "@POS:63@]" + "@POS:65@" + STRING029 + STRING010 + "@POS:70@" + STRING029 + STRING031 + "@POS:75@" + STRING030 + STRING032
  297.         FClose 2
  298.         INTEGER010 = 0
  299.         FOpen 1, PPEPath() + PPEName() + ".tmp", 0, 0
  300.         :LABEL017
  301.         If (Ferr(1)) Goto LABEL018
  302.         FDGet STRING035
  303.         If (Ferr(1)) Goto LABEL018
  304.         Inc INTEGER010
  305.         Goto LABEL017
  306.         :LABEL018
  307.         If (INTEGER010 > INTEGER018) Then
  308.             FAppend 2, PPEPath() + PPEName() + ".wrk", 1, 0
  309.             Frewind 1
  310.             FDGet STRING035
  311.             :LABEL019
  312.             If (Ferr(1)) Goto LABEL020
  313.             FDGet STRING035
  314.             If (Ferr(1)) Goto LABEL020
  315.             FDPutLn STRING035
  316.             Goto LABEL019
  317.             :LABEL020
  318.             FClose 1
  319.             FClose 2
  320.         Endif
  321.         If (Exist(PPEPath() + PPEName() + ".wrk")) Then
  322.             Delete PPEPath() + PPEName() + ".tmp"
  323.             Rename PPEPath() + PPEName() + ".wrk", PPEPath() + PPEName() + ".tmp"
  324.         Endif
  325.     Endif
  326.     FClose 1
  327.     If (Exist(STRING002 + "." + String(PcbNode()))) Delete STRING002 + "." + String(PcbNode())
  328.     If (STRING039 == YesChar()) Then
  329.         FCreate 2, STRING040 + PPEName() + ".blt", 1, 0
  330.         FOpen 1, PPEPath() + PPEName() + ".pcb", 0, 0
  331.         :LABEL021
  332.         If (Ferr(1)) Goto LABEL022
  333.         FDGet STRING035
  334.         If (Ferr(1)) Goto LABEL022
  335.         FDPutLn STRING035
  336.         Goto LABEL021
  337.         :LABEL022
  338.         FClose 1
  339.         FOpen 1, PPEPath() + PPEName() + ".tmp", 0, 0
  340.         :LABEL023
  341.         If (Ferr(1)) Goto LABEL024
  342.         FDGet STRING035
  343.         If (Ferr(1)) Goto LABEL024
  344.         FDPutLn STRING035
  345.         Goto LABEL023
  346.         :LABEL024
  347.         FClose 1
  348.         FOpen 1, PPEPath() + PPEName() + ".ftr", 0, 0
  349.         :LABEL025
  350.         If (Ferr(1)) Goto LABEL026
  351.         FDGet STRING035
  352.         If (Ferr(1)) Goto LABEL026
  353.         FDPutLn STRING035
  354.         Goto LABEL025
  355.         :LABEL026
  356.         FClose 1
  357.         FClose 2
  358.     Endif
  359.     If (Exist(PPEPath() + PPEName() + ".loc")) Delete PPEPath() + PPEName() + ".loc"
  360.     Stop
  361.  
  362. ;------------------------------------------------------------------------------
  363. ;
  364. ; Usage report (before postprocessing)
  365. ;
  366. ; ■ Statements used :
  367. ;
  368. ;    1       End
  369. ;    1       Cls
  370. ;    56      Goto 
  371. ;    68      Let 
  372. ;    3       Print 
  373. ;    40      If 
  374. ;    3       DispFile 
  375. ;    3       FCreate 
  376. ;    6       FOpen 
  377. ;    2       FAppend 
  378. ;    13      FClose 
  379. ;    1       GetUser
  380. ;    3       Delete 
  381. ;    1       CdChkOn
  382. ;    1       CdChkOff
  383. ;    1       Inc 
  384. ;    1       Stop
  385. ;    2       AnsiPos 
  386. ;    1       Rename 
  387. ;    1       Frewind 
  388. ;    1       FDefIn 
  389. ;    1       FDefOut 
  390. ;    34      FDGet 
  391. ;    20      FDPutLn 
  392. ;
  393. ;
  394. ; ■ Functions used :
  395. ;
  396. ;    1       -
  397. ;    1       ^
  398. ;    18      *
  399. ;    4       /
  400. ;    145     +
  401. ;    14      -
  402. ;    10      ==
  403. ;    6       <>
  404. ;    1       <
  405. ;    7       >
  406. ;    32      !
  407. ;    3       &&
  408. ;    3       Len(
  409. ;    1       Upper()
  410. ;    4       Mid()
  411. ;    8       Left()
  412. ;    2       Right()
  413. ;    5       Space()
  414. ;    10      Ferr()
  415. ;    46      Chr()
  416. ;    1       RTrim()
  417. ;    2       Date()
  418. ;    2       Time()
  419. ;    1       U_Name()
  420. ;    2       U_Ful()
  421. ;    2       U_Fdl()
  422. ;    2       U_Bdl()
  423. ;    2       U_Bul()
  424. ;    1       YesChar()
  425. ;    14      String()
  426. ;    21      PPEPath()
  427. ;    2       U_MsgRd()
  428. ;    2       U_MsgWr()
  429. ;    6       PcbNode()
  430. ;    2       ReadLine()
  431. ;    3       OnLocal()
  432. ;    5       Exist()
  433. ;    1       TokenStr()
  434. ;    1       CDOn()
  435. ;    1       GetY()
  436. ;    10      U_Stat()
  437. ;    21      PPEName()
  438. ;    2       Modem()
  439. ;    1       Alias()
  440. ;
  441. ;------------------------------------------------------------------------------
  442. ;
  443. ; Analysis flags : No flag
  444. ;
  445. ;
  446. ;------------------------------------------------------------------------------
  447. ;
  448. ;     One or more PPLC bugs were found, this is not a PPLX error, but PPLX is  
  449. ;     reporting the error ;)  Some statements  like VAR = !!!!10, VAR = !0*!0  
  450. ;     or similar things are not handled  correctly by PPLC, some may use this  
  451. ;     to  avoid a  correct decompilation...  This doesn't mean that there  is  
  452. ;     actually an error, but the probability of error is high...               
  453. ;     ■ Search for : PPLC BUG
  454. ;
  455. ;------------------------------------------------------------------------------
  456. ;
  457. ; Postprocessing report
  458. ;
  459. ;    0       For/Next
  460. ;    0       While/EndWhile
  461. ;    21      If/Then or If/Then/Else
  462. ;    0       Select Case
  463. ;
  464. ;------------------------------------------------------------------------------
  465. ;                 AEGiS Corp - Break the routines, code against the machines!
  466. ;------------------------------------------------------------------------------
  467.