home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / T / T4F15BDP.ZIP / PPLD.DOC < prev    next >
Text File  |  1997-03-12  |  12KB  |  320 lines

  1.  
  2.                              PPLD V3.20
  3.  
  4.                    (C)1994-97 Chicken [Tools4Fools]
  5.  
  6.                           This is No-Ware
  7.                        Get lost to register !
  8.  
  9.  
  10.      -----------------------------------------------------------
  11.  
  12.  
  13. WHAT IS PPLD GOOD FOR ?
  14.  
  15. Makes your potatoes grow BIGGER !
  16. Gives you a body IRRESTIBLE to ANY kind of girls !
  17. Cures your aunts gout, hunchback AND PERITONITIS !
  18. Makes your wedding dress DAZZLING white !
  19. Brings you BILLIONS of dollars ! (send me $186.43 for more details)
  20. Kills ANYTHING with more than four legs tickling in your hair !
  21.  
  22. Ah  yeah, and besides this, it  decompiles  the  PCBoard  Programming
  23. Language Executables (.PPE) back  to  what they were  before  the so-
  24. called compilation. Well, they call it compilation, in fact it's just
  25. a translation  to tockens simple  enough to be executed by the stupid
  26. interpreter (my C-64 did it too).
  27.  
  28. [philosophical intermezzo ON]
  29.  
  30.   As long as Clark Development Company Inc. can't come up with a REAL
  31.   compiler there will be decompilers by me or  by others. CDC started
  32.   to  encrypt the .PPEs created  with  PPLC 3.0 and  newer.  The only
  33.   effect is even more slowness, nothing else.  Ah yes, it also  makes
  34.   it harder for talented coders to protect their work  with some well
  35.   misplaced bytes (Anti Decompiling System). Dear CDC developers, why
  36.   not creating some real ASM code ?  PPEs would run at a decent speed
  37.   and decompilers would be dead forever.  Right, real compilers are a
  38.   bit trickier to do.  But hey !  What are you getting your bucks for
  39.   then ?
  40.  
  41.   Thank you.
  42.  
  43. [philosophical intermezzo OFF]
  44.  
  45.  
  46.      -----------------------------------------------------------
  47.  
  48.  
  49. BUT HOW TO USE IT ?
  50.  
  51. ppld [options] srcname[.ext] [dstname[.ext]]
  52.  
  53. Standard  extensions are:  for source .PPE,  for destination .PPD (to
  54. prevent overwriting of existing source code).
  55.  
  56. Options:
  57.  
  58. /NOTRACE  - Disable Trace Mode
  59.             PPLD will decompile the whole code and therefore probably
  60.             get traped by an  anti decompiling  trick. But if it gets
  61.             through, you can seek for disabled features  and mindless
  62.             coders.
  63.  
  64. /SYMBOLIC - Create Symbolic File
  65.             PPLD will add debugging  information to  the source. This
  66.             .SYM file is required to trace a PPE with PPLDebug. Check
  67.             out the PPLDebug docs.
  68.  
  69.  
  70.      -----------------------------------------------------------
  71.  
  72.  
  73. TROUBLE SHOOTINGS (BLAM BLAM, YOU'RE DEAD)
  74.  
  75. PPLC replaces all FOR/WHILE/CASE/... thingies with IF/GOTO statements
  76. and rearranges  IF [..] THEN [..] ENDIF like this (with ELSE it  gets
  77. even worse):
  78.  
  79.         IF [..] THEN
  80.         [..]
  81.         ENDIF           ..is compiled as:
  82.  
  83.         IF ![..] GOTO LABEL
  84.         [..]
  85.         :LABEL
  86.  
  87. Little hint: As the  usage of FOR [...] NEXT causes a real mess  with
  88. lotta useless worstcase bound checkings, your program will run faster
  89. when  you  implement the routine  using WHILE or an  own IF [..] THEN
  90. construction.
  91.  
  92. Serious crashes can be caused by the following reasons:
  93.  
  94.      a) A REAL big .PPE needs too many labels.
  95.         "can't imagine"
  96.  
  97.      b) A REAL nasty line gets too long.
  98.         "we think our .ppe isn't slow enough"
  99.         (seems to get common to make 1000 times 1+1, but let me warn
  100.          you that this costs you several kbytes of stack and makes
  101.          your .ppe running sloooooooooow)
  102.  
  103.      c) A REAL ugly expression needs too much iterations.
  104.         "recursion rulez"
  105.  
  106.      d) I created buggy translation tables.
  107.         "beautiful secretaries can't type"
  108.  
  109. It is possible that a .PPE doesn't recompile to the same size for the
  110. following reasons:
  111.  
  112.      a) PPLD will skip unused code.  (Use the /NOTRACE option to dis-
  113.         able this feature)
  114.         "this one is called *AI Optimation Mode*"
  115.  
  116.      b) PPLD just forgets about variables defined but not used in the
  117.         code. (variables are recognized upon usage at positions where
  118.         PPLC requires VAR as function/statement parameter)
  119.         "this one is called *AI Optimation Mode* too"
  120.  
  121.      c) You have to  compile with the same commandline options as the
  122.         author used for the original .PPE.
  123.         "my two-lines-ppe takes only one kilobyte"
  124.  
  125.      d) There are some quite strange .PPEs with only half of the pre-
  126.         defined user variables included.
  127.         "public betas suck"
  128.  
  129.      e) There's a bug in PPLC. You'll get a note in the .PPD if this
  130.         bug was used to protect the .PPE from decompiling.
  131.  
  132. It is possible that a .PPE doesn't recompile at all for the following
  133. reasons:
  134.  
  135.      a) With some tricks, it's possible to use the  ENDPROC / ENDFUNC
  136.         statements before the real end of a procedure/function.
  137.  
  138.         Example: IF condition THEN
  139.                     ENDPROC             ;the early end
  140.                  ENDIF
  141.                  [...]
  142.                  ENDPROC                ;the real end
  143.  
  144.                  This code will decompile to something like:
  145.  
  146.                  IF !condition GOTO label
  147.                  ENDPROC                ;the early end
  148.                  :label
  149.                  [...]
  150.                  ENDPROC                ;the real end
  151.  
  152.         The problem with this is, that PPLC refuses to recompile this
  153.         code  as  it refuses  to know  the label  behind the  ENDPROC
  154.         statement.  To make it working again,  just retype it  in the
  155.         original IF .. THEN .. ENDIF style.  Hope to fix this in next
  156.         century.
  157.  
  158. At the end of  the source, is a list of used functions/statements. If
  159. you encounter some missing names or ???s the command is unknown.
  160.  
  161.  
  162.      -----------------------------------------------------------
  163.  
  164.  
  165. MESSAGES:
  166.  
  167. Lone Runner     How's your compiler going ?
  168.  
  169. X-Con           Alive ?  Send me a mail !
  170.  
  171. PPE Coders      Don't write me: PPLD is great to learn PPL...
  172.                 Be honest     : Send me latest PPLD so I can go on
  173.                                 ripping state-of-the-art lightbars.
  174.  
  175. Real Programmer Tools 4 Fools wants YOU !
  176.                 Don't hesitate to contact us.
  177.  
  178. CDC             Rumours are telling PCB 15.3 will beat shit out of
  179.                 PPLD & co ?
  180.  
  181.    
  182.      -----------------------------------------------------------
  183.  
  184.  
  185. REVISION HISTORY:
  186.  
  187. 25.06.94        release of version 1.00 (nightmares get real!)
  188.  
  189. 01.07.94        release of version 1.01 (bugs, bugs, bugs!)
  190.                 - bugfix: decompiled LANGTEXT instead of LANGEXT
  191.                 - bugfix: decompiled FPUTAD instead of FPUTPAD
  192.                 - bugfix: decompiled CDKCHON instead of CDCHKON
  193.                 - bugfix: decompiled UNOPER instead of UN_OPER
  194.                 - bugfix: decompilation errors on statement FFLUSH
  195.                 - bugfix: decompilation errors on statement REDIM
  196.                 - bugfix: decompilation errors on statement SORT
  197.                 - bugfix: added missing statement MOUSEREG
  198.                 - bugfix: added missing statement BRAG
  199.                 - bugfix: added missing statement FREALTUSER
  200.                 - bugfix: added missing function HIMSGNUM
  201.                 - bugfix: added missing function LOMSGNUM
  202.                 - bugfix: added missing function KBDFILUSED
  203.                 - bugfix: added missing function PPLBUFSIZE
  204.                 - bugfix: added missing function KBDBUFSIZE
  205.                 - bugfix: added missing function FLAGCNT
  206.                 - bugfix: out of memory on ppe without vars/constants
  207.  
  208. 20.08.94        release of version 1.02 (it's alive!)
  209.                 * recursive trace mode to detect decompiling traps.
  210.                   This  prevents PPLD  from decompiling passages with
  211.                   unknown functions/statements.
  212.                   As side effect it won't decompile unused code.
  213.                 * added /NOTRACE option to turn off trace mode and
  214.                   its "features".
  215.                 - bugfix: decompilation errors on VARSEG, VAROFFS,
  216.                   VARADDR, SCRFILE after SORT-bugfix in last version
  217.  
  218. 22.09.94        release of version 2.00 (the fake!)
  219.                 !!!!!!!! DON'T USE IT, IT'S A TROYAN !!!!!!!!
  220.  
  221. 13.10.95        release of version 3.00 (who says late?)
  222.                 * added PPLC 3.0 decryption
  223.                 * added PPLC 3.0 new statements/functions/types...
  224.                 * added PPLC 3+ procedures/functions
  225.                 * added PPLC 3.10 decryption (which doesn't pack 0's
  226.                   if there's no gain in it)
  227.                 * added PPLC 3.10 new statements/functions
  228.                 * added PPLC 3.20 new statements/functions
  229.                 * added !0+!0 bug detection
  230.                 - bugfix: decrypting aborted even everything was ok
  231.                 - bugfix: trace aborted on jump to program start/end
  232.                 - bugfix: 4 times more memory for BIIIIIIIG strings
  233.                 - bugfix: correct output of floatingpoint constants
  234.                   ARGH! costs 10kb of executable size!!!
  235.                   (hmm, wonder why you didn't notice this ? are PPE
  236.                   coders too stupid to use 'em ?)
  237.  
  238. 16.05.96        release of version 3.10 (a new dimension)
  239.                 * added /SYMBOLIC option to create symbolic files for
  240.                   PPLDebug, see also PPLDEBUG.DOC
  241.                 * added simple-WHILE analyzing so recompiled ppe will
  242.                   work now, eg: WHILE (var="") var=INKEY()
  243.                   (HEY! this was THAT obvious and not a single bug
  244.                    report reached me !?)
  245.                 + updated PPLC bug-info
  246.                 - bugfix: mixed up labels in ppe with more than 32k
  247.                   bytes of code
  248.                 - bugfix: trace aborted on WHILE statement
  249.                 - bugfix: correct handling of INT, SBYTE, SWORD etc.
  250.                   constants (used by Acidic to fuckup PPLD, bad boys)
  251.                 - bugfix: now correctly counts lines with PPLC bugs
  252.  
  253. 13.03.97        release of version 3.20 (nothing new)
  254.                 + new symbolic file format for PPLDebug 1.5b
  255.                 - saved 2kb of size, is there something missing ?
  256.  
  257. The version  with Clark Development copyrights is a fake/ripoff/patch
  258. of PPLD version 1.00 by unknown losers (same code, same bugs).
  259.  
  260. The version 2.00  released by an unknown  lamer in september '94 is a
  261. troyan and will most probably delete your harddisk.
  262.  
  263.  
  264.      -----------------------------------------------------------
  265.  
  266.  
  267. CONTACT THE AUTHOR !
  268.  
  269. If you got an idea for some features, dig it :).
  270. But for chitchat, donations, news about  PPLC 4.0, hate mails or bugs
  271. (yeah, shame on YOU for not reporting them!) ...
  272.  
  273. call The Lycaeum:     +41 41-484-2989 [ZYX V34]
  274.                       +41 41-484-3289 [USR V34]
  275.  
  276. email via InterNet:   chicken@space.ch
  277.  
  278. or snail mail:        Adrian Studer
  279.                       Hauptstrasse 54
  280.                       6170 Schüpfheim
  281.                       Switzerland
  282.  
  283.  
  284.      -----------------------------------------------------------
  285.  
  286.  
  287. COPYRIGHTS:
  288.  
  289. PPLD is copyright of the author.  The author allows to: use software,
  290. make copies  of it, give copies to anybody  and distribute it through
  291. electronic media.
  292.  
  293. It  is not  allowed to ask  for money or  donations for  any  copy or
  294. copies of the  program,  neither distribute the software and/or docu-
  295. mentation with commercial products and/or donuts.
  296.  
  297.  
  298.      -----------------------------------------------------------
  299.  
  300.  
  301. DISK-LAMER:
  302.  
  303. The author denies any responsibilities for illegal acts involving the
  304. (mis)use  of PPLD.  It  is  illegal (and lame) to  spread  copies  of
  305. tampered and/or modified PPEs.
  306.  
  307. Pay fair prices to fair shareware authors (like us ?)
  308.  
  309. This EXCLUDES software which:
  310.         a) contains backdoors
  311.      or b) consists of less than 50 lines code
  312.      or c) costs  more than $20 (don't tell me you invested months in
  313.            your one-in-thousands-so-fucking-boring-online-game)
  314.  
  315. This INCLUDES the great work of the rare REAL coders doing .PPEs !
  316.  
  317.  
  318.      -----------------------------------------------------------
  319.              ! T4F, INCREASES THE QUALITY OF YOUR LIFE !
  320.