home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / T / THTOFF20.ZIP / THTOFF.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-10-01  |  5KB  |  325 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.     String   STRING001
  30.     String   STRING002
  31.     String   STRING003
  32.     String   STRING004
  33.     String   STRING005
  34.     String   STRING006
  35.     String   STRING007
  36.     String   STRING008
  37.     String   STRING009
  38.     String   STRING010
  39.     String   STRING011
  40.     String   STRING012
  41.     String   STRING013
  42.     String   STRING014
  43.     String   STRING015
  44.     String   STRING016
  45.     String   STRING017
  46.     String   STRING018
  47.     String   STRING019
  48.     String   STRING020
  49.     String   STRING021
  50.     String   STRING022
  51.     String   STRING023
  52.     String   STRING024
  53.     String   STRING025
  54.     String   STRING026
  55.     String   STRING027
  56.  
  57. ;------------------------------------------------------------------------------
  58.  
  59.     FOpen 1, PPEPath() + PPEName() + ".cnf", 0, 0
  60.     FGet 1, STRING002
  61.     FGet 1, STRING003
  62.     FGet 1, STRING004
  63.     FGet 1, STRING005
  64.     FGet 1, STRING006
  65.     FGet 1, STRING007
  66.     FGet 1, STRING011
  67.     FGet 1, STRING012
  68.     FGet 1, STRING013
  69.     FGet 1, INTEGER001
  70.     FGet 1, STRING016
  71.     FGet 1, STRING019
  72.     FGet 1, STRING017
  73.     FGet 1, STRING018
  74.     FGet 1, STRING020
  75.     FGet 1, STRING021
  76.     FGet 1, STRING022
  77.     FGet 1, STRING023
  78.     FGet 1, STRING024
  79.     FGet 1, STRING025
  80.     FGet 1, STRING008
  81.     FGet 1, STRING009
  82.     FClose 1
  83.     If (!(STRING027 == "0")) Print "" ; PPLC BUG!
  84.     STRING027 = ((((((((((((((((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
  85.     INTEGER002 = INTEGER001
  86.     INTEGER003 = INTEGER001
  87.     STRING001 = ""
  88.     INTEGER006 = STRING016
  89.     STRING010 = "@X01" + Chr(67) + Chr(111) + Chr(100) + Chr(101) + Chr(100) + "@X04 " + Chr(66) + Chr(121) + "@X0E " + Chr(84) + Chr(104) + Chr(101) + "@X01 " + Chr(77) + Chr(97) + Chr(115) + Chr(116) + Chr(101) + Chr(114)
  90.     StartDisp 1
  91.     INTEGER005 = GetY()
  92.     DispFile PPEPath() + PPEName() + ".pcb", 4 + 2
  93.     INTEGER004 = GetY()
  94.     STRING026 = 0
  95.     AnsiPos 29, INTEGER004 - STRING020
  96.     Print STRING010
  97.     AnsiPos INTEGER006, INTEGER004 - STRING021
  98.     Print STRING002
  99.     STRING014 = NoChar()
  100.     :LABEL001
  101.     If (INTEGER001 > 10) INTEGER001 = 10
  102.     For INTEGER007 = 1 To INTEGER001
  103.         AnsiPos STRING016, INTEGER004 - STRING022
  104.         Print STRING005 + STRING026 + "@X07"
  105.         Print STRING005 + "∙∙∙∙∙@X07"
  106.         AnsiPos STRING016, INTEGER004 - STRING023
  107.         Print STRING006 + STRING008 + STRING008 + STRING008 + STRING008 + STRING008 + STRING008
  108.         Inc STRING016
  109.         Inc STRING016
  110.         Inc STRING016
  111.         Inc STRING016
  112.         Inc STRING016
  113.         If (STRING026 <> 9) Inc STRING016
  114.         If (((STRING026 == INTEGER001 + 9) || (STRING026 == INTEGER001 + 18)) || (STRING026 == INTEGER001 + 27)) Dec STRING016
  115.         Inc STRING026
  116.     Next
  117.     If (INTEGER003 > 10) Then
  118.         AnsiPos STRING016, INTEGER004 - STRING023
  119.         Print STRING006 + STRING008 + STRING008
  120.     Else
  121.         AnsiPos STRING016, INTEGER004 - STRING023
  122.         Print STRING006 + STRING008
  123.     Endif
  124.     AnsiPos STRING016, INTEGER004 - STRING022
  125.     Print STRING005 + STRING026 + "@X07"
  126.     STRING016 = INTEGER006
  127.     INTEGER010 = Len(INTEGER002)
  128.     AnsiPos INTEGER006, INTEGER004 - STRING024
  129.     If (INTEGER010 == 2) Then
  130.         INTEGER010 = 1
  131.     Else
  132.         INTEGER010 = 2
  133.     Endif
  134.     Print STRING003 + String(INTEGER002) + Space(INTEGER010) + STRING004
  135.     INTEGER001 = INTEGER002
  136.     For STRING015 = 1 To INTEGER001
  137.         Print "@BEEP@"
  138.         AnsiPos STRING016, INTEGER004 - STRING023
  139.         Print STRING007 + STRING009
  140.         Delay 2
  141.         Gosub LABEL002
  142.         AnsiPos STRING016 + 1, INTEGER004 - STRING023
  143.         Print STRING007 + STRING009
  144.         Delay 2
  145.         Gosub LABEL002
  146.         AnsiPos STRING016 + 2, INTEGER004 - STRING023
  147.         Print STRING007 + STRING009
  148.         Delay 2
  149.         Gosub LABEL002
  150.         AnsiPos STRING016 + 3, INTEGER004 - STRING023
  151.         Print STRING007 + STRING009
  152.         Delay 2
  153.         Gosub LABEL002
  154.         AnsiPos STRING016 + 4, INTEGER004 - STRING023
  155.         Print STRING007 + STRING009
  156.         Delay 2
  157.         Gosub LABEL002
  158.         AnsiPos STRING016 + 5, INTEGER004 - STRING023
  159.         Print STRING007 + STRING009
  160.         Delay 2
  161.         Gosub LABEL002
  162.         AnsiPos STRING016 + 6, INTEGER004 - STRING023
  163.         Print STRING007 + STRING009 + "@BEEP@"
  164.         Delay 3
  165.         Gosub LABEL002
  166.         Goto LABEL003
  167.         :LABEL002
  168.         STRING001 = Upper(Inkey())
  169.         If (STRING001 == Chr(13)) Break
  170.         If ((STRING001 == "H") || (STRING001 == "G")) Goto LABEL004
  171.         If (Abort()) Break
  172.         Return
  173.         :LABEL003
  174.         If (INTEGER002 == 1) Goto LABEL004
  175.         Dec INTEGER002
  176.         Inc INTEGER008
  177.         INTEGER010 = Len(INTEGER002)
  178.         If (INTEGER010 == 2) Then
  179.             INTEGER010 = 1
  180.         Else
  181.             INTEGER010 = 2
  182.         Endif
  183.         AnsiPos INTEGER006, INTEGER004 - STRING024
  184.         Print STRING003 + String(INTEGER002) + Space(INTEGER010) + STRING004
  185.         Inc STRING016
  186.         Inc STRING016
  187.         Inc STRING016
  188.         Inc STRING016
  189.         Inc STRING016
  190.         Inc STRING016
  191.         If ((((STRING014 <> YesChar()) && (INTEGER003 - INTEGER002 == 10)) || (INTEGER003 - INTEGER002 == 20)) || (INTEGER003 - INTEGER002 == 30)) Then
  192.             STRING016 = INTEGER006
  193.             STRING014 = YesChar()
  194.             AnsiPos INTEGER006, INTEGER004 - STRING023
  195.             Print STRING025 + Space(61)
  196.             AnsiPos INTEGER006, INTEGER004 - STRING022
  197.             Print STRING025 + Space(61)
  198.             INTEGER001 = INTEGER003 - INTEGER008
  199.             STRING016 = INTEGER006
  200.             Goto LABEL001
  201.         Endif
  202.     Next
  203.     AnsiPos INTEGER006, INTEGER004 - STRING021
  204.     Print Space(61)
  205.     AnsiPos INTEGER006, INTEGER004 - STRING024
  206.     Print STRING025 + Space(61)
  207.     AnsiPos INTEGER006 + 6, INTEGER004 - STRING024
  208.     PrintLn STRING011 + "@X0E" + String(INTEGER002) + " " + STRING012
  209.     KbdStuff "^K"
  210.     Goto LABEL005
  211.     :LABEL004
  212.     Dec INTEGER002
  213.     AnsiPos INTEGER006, INTEGER004 - STRING021
  214.     Print Space(61)
  215.     AnsiPos INTEGER006 + 2, INTEGER004 - STRING024
  216.     Print STRING025 + Space(53)
  217.     AnsiPos INTEGER006 + 20, INTEGER004 - STRING024
  218.     PrintLn STRING013
  219.     KbdStuff "H"
  220.     If (STRING019 == YesChar()) Then
  221.         DtrOff
  222.         Shell 0, INTEGER009, STRING017, STRING018
  223.         Hangup
  224.     Else
  225.         Hangup
  226.     Endif
  227.     :LABEL005
  228.     AnsiPos INTEGER006 + 72, INTEGER004
  229.     End
  230.  
  231. ;------------------------------------------------------------------------------
  232. ;
  233. ; Usage report (before postprocessing)
  234. ;
  235. ; ■ Statements used :
  236. ;
  237. ;    1       End
  238. ;    21      Goto 
  239. ;    28      Let 
  240. ;    25      Print 
  241. ;    2       PrintLn 
  242. ;    15      If 
  243. ;    1       DispFile 
  244. ;    1       FOpen 
  245. ;    1       FClose 
  246. ;    22      FGet 
  247. ;    1       StartDisp 
  248. ;    2       Hangup
  249. ;    7       Gosub 
  250. ;    1       Return
  251. ;    1       DtrOff
  252. ;    7       Delay 
  253. ;    14      Inc 
  254. ;    3       Dec 
  255. ;    1       Shell 
  256. ;    2       KbdStuff 
  257. ;    25      AnsiPos 
  258. ;
  259. ;
  260. ; ■ Functions used :
  261. ;
  262. ;    1       ^
  263. ;    18      *
  264. ;    76      +
  265. ;    28      -
  266. ;    14      ==
  267. ;    2       <>
  268. ;    2       <
  269. ;    2       <=
  270. ;    2       >
  271. ;    4       >=
  272. ;    9       !
  273. ;    5       &&
  274. ;    7       ||
  275. ;    2       Len(
  276. ;    1       Upper()
  277. ;    8       Space()
  278. ;    17      Chr()
  279. ;    1       Abort()
  280. ;    1       NoChar()
  281. ;    3       YesChar()
  282. ;    1       Inkey()
  283. ;    3       String()
  284. ;    2       PPEPath()
  285. ;    2       GetY()
  286. ;    2       PPEName()
  287. ;
  288. ;------------------------------------------------------------------------------
  289. ;
  290. ; Analysis flags : BS
  291. ;
  292. ; B - Brute hangup ■ 1
  293. ;     Program hangup without notification. This may be a good way to
  294. ;     disconnect a user, but if used randomly, may be very nasty
  295. ;     ■ Search for : HANGUP, DTROFF
  296. ;
  297. ; S - Shell to DOS ■ 5
  298. ;     This may be normal if the PPE need to execute an external command,
  299. ;     but may be actually anything... nasty (formating HD, rebooting,...)
  300. ;     or usefull (sorting, maintenance,...). Check!
  301. ;     ■ Search for : SHELL
  302. ;
  303. ;
  304. ;------------------------------------------------------------------------------
  305. ;
  306. ;     One or more PPLC bugs were found, this is not a PPLX error, but PPLX is  
  307. ;     reporting the error ;)  Some statements  like VAR = !!!!10, VAR = !0*!0  
  308. ;     or similar things are not handled  correctly by PPLC, some may use this  
  309. ;     to  avoid a  correct decompilation...  This doesn't mean that there  is  
  310. ;     actually an error, but the probability of error is high...               
  311. ;     ■ Search for : PPLC BUG
  312. ;
  313. ;------------------------------------------------------------------------------
  314. ;
  315. ; Postprocessing report
  316. ;
  317. ;    2       For/Next
  318. ;    0       While/EndWhile
  319. ;    5       If/Then or If/Then/Else
  320. ;    0       Select Case
  321. ;
  322. ;------------------------------------------------------------------------------
  323. ;                 AEGiS Corp - Break the routines, code against the machines!
  324. ;------------------------------------------------------------------------------
  325.