
                             PPLD V3.00á1

                       (C)1994 by Chicken [EcR]

     -----------------------------------------------------------


WHAT IS PPLD GOOD FOR ?

Makes your potatoes grow BIGGER !
Gives you a body IRRESTIBLE to ANY kind of girls !
Cures your aunts gout, hunchback AND PERITONITIS !
Makes your wedding dress DAZZLING white !
Brings you BILLIONS of dollars ! (send me $186.43 for more details)
Kills ANYTHING with more than four legs tickling in your hair !

Ah  yeah, and besides this, it  decompiles  the  PCBoard  Programming
Language Executables (.PPE) back  to  what they were  before  the so-
called compilation. Well, they call it compilation, in fact it's just
a translation  to tockens simple  enough to be executed by the stupid
interpreter (my C-64 did it too).

[philosophical intermezzo ON]

  As long as Clark Development Company Inc. can't come up with a REAL
  compiler there will be decompilers by me or  by others. CDC started
  to  encrypt the .PPEs created  with  PPLC 3.0 and  newer.  The only
  effect is even more slowness, nothing else.  Ah yes, it also  makes
  it harder for talented authors to protect their work with some well
  misplaced bytes (Anti Decompiling System). Dear CDC developers, why
  not creating some real ASM code ?  PPEs would run at a decent speed
  and decompilers would be dead forever.  Right, real compilers are a
  bit trickier to do. But hey !  What are you getting your bucks for
  then ?

  Thank you.

[philosophical intermezzo OFF]


     -----------------------------------------------------------


HOW TO USE IT ?

ppld [options] srcname[.ext] [dstname[.ext]]

Standard  extensions are:  for source .PPE,  for destination .PPD (to
prevent overwriting of existing source code).

Options:

/NOTRACE - Disable Trace Mode
           PPLD will decompile the whole code and  therefore probably
           get traped by an  anti decompiling  trick.  But if it gets
           through,  you can seek for disabled features and  mindless
           coders.


     -----------------------------------------------------------


TROUBLE SHOOTINGS

PPLC replaces all FOR/WHILE/CASE/... thingies with IF/GOTO statements
and rearranges  IF [..] THEN [..] ENDIF like this (with ELSE it  gets
even worse):

        IF [..] THEN
        [..]
        ENDIF           ..is compiled as:

        IF ![..] GOTO LABEL
        [..]
        :LABEL

Little hint: As the  usage of FOR [...] NEXT causes a real mess  with
lotta useless worstcase bound checkings, your program will run faster
when  you  implement the routine  using WHILE or an  own IF [..] THEN
construction.

Serious crashes can be caused by the following reasons:

     a) A REAL big .PPE needs too much labels.
        "can't imagine"

     b) A REAL nasty line gets too long.
        "never found one"
        (oops, mflaggi got a line bigger than 1000 characters. But
        who cares about source of stupid copy'n paste coders anyway)

     c) A REAL ugly expression has too much iterations.
        "recursion rulez"

     d) I created buggy translation tables.
        "beautiful secretaries can't type"

It is possible that a .PPE doesn't recompile to the same size for the
following reasons:

     a) PPLD will skip unused code.  (Use the /NOTRACE option to dis-
        able this feature)
        "this one is called *AI Optimation Mode*"

     b) PPLD just forgets about variables defined but not used in the
        code. (variables are recognized upon usage at positions where
        PPLC requieres VAR as function/statement parameter)
        "this one is called *AI Optimation Mode*"

     c) You have to  compile with the same commandline options as the
        author for the original .PPE.
        "my two-lines-ppe takes only one kilobyte"

     d) There are some quite strange .PPEs with only half of the pre-
        defined user variables included.
        "public betas suck"

At the end of  the source, is a list of used functions/statements. If
you encounter some missing names or ???s the command is unknown.


     -----------------------------------------------------------


Q&A (hmm, or S&Q ?)

Q: "[..] and the worst: It comes from switzerland !"
                         (a serious swiss sysop/"developer" in ILink)
A: Would you feel better when I release next version from Botswana ?

   
     -----------------------------------------------------------


REVISION HISTORY:

25.06.94        release of version 1.00 (nightmares get real!)

01.07.94        release of version 1.01 (bugs, bugs, bugs!)
                - bugfix: decompiled LANGTEXT instead of LANGEXT
                - bugfix: decompiled FPUTAD instead of FPUTPAD
                - bugfix: decompiled CDKCHON instead of CDCHKON
                - bugfix: decompiled UNOPER instead of UN_OPER
                - bugfix: decompilation errors on statement FFLUSH
                - bugfix: decompilation errors on statement REDIM
                - bugfix: decompilation errors on statement SORT
                - bugfix: added missing statement MOUSEREG
                - bugfix: added missing statement BRAG
                - bugfix: added missing statement FREALTUSER
                - bugfix: added missing function HIMSGNUM
                - bugfix: added missing function LOMSGNUM
                - bugfix: added missing function KBDFILUSED
                - bugfix: added missing function PPLBUFSIZE
                - bugfix: added missing function KBDBUFSIZE
                - bugfix: added missing function FLAGCNT
                - bugfix: out of memory on ppe without vars/constants

20.08.94        release of version 1.02 (it's alive!)
                * recursive trace mode to detect decompiling traps.
                  This  prevents PPLD  from decompiling passages with
                  unknown functions/statements.
                  As side effect it won't decompile unused code.
                * added /NOTRACE  option to  turn off  trace mode and
                  its "features".
                - bugfix: decompilation errors on VARSEG, VAROFFS,
                  VARADDR, SCRFILE after SORT-bugfix in last version

22.09.94        release of version 2.00 (the fake!)
                !!!!!!!! DON'T USE IT, IT'S A TROYAN !!!!!!!!

06.11.94        release of version 3.00 (peanuts!)
                * added PPLC 3.0 decryption
                * added PPLC 3.0 new statements/functions/types...
                - bugfix: trace abort on jump to program start/end
                - bugfix: 4 times more memory for BIIIIIIIG strings
                (* added PPLC 3.0 procedures/functions support)
                        no time... not finished yet

The version  with Clark Development copyrights is a fake/ripoff/patch
of PPLD version 1.00 by unknown losers (same code, same bugs).

The  version 2.00 released  by an  unknown  lamer in  september is  a
troyan and will most probably delete your harddisc.


     -----------------------------------------------------------


CONTACT THE AUTHOR !

If you got an idea for some features, dig it :).
But for chitchat, donations, news about PPLC 4.0, hate mails, bombs

call The Lycaeum +41 41-762-989 and write a message to sysop,
or email via InterNet chicken@ezinfo.vmsmail.ethz.ch


     -----------------------------------------------------------


COPYRIGHTS:

PPLD is copyright of the author.  The author allows to: use software,
make copies  of it, give copies to anybody  and distribute it through
electronic media.

It  is not  allowed to ask  for money or  donations for  any  copy or
copies of the  program,  neither distribute the software and/or docu-
mentation with commercial products and/or crackers.


     -----------------------------------------------------------


DISK-LAMER:

The author denies any responsibilities for illegal acts involving the
(mis)use  of PPLD.  It  is  illegal (and lame) to  spread  copies  of
tampered and/or modified PPEs.

Pay fair prices to fair shareware authors.

This EXCLUDES software which:
        a) contains backdoors
     or b) consists of less than 50 lines code
     or c) costs  more than $20 (don't tell me you invested months in
           your one-in-thousands-so-fucking-boring-online-game)

This INCLUDES the great work of the rare REAL coders doing .PPEs !


     -----------------------------------------------------------
                  ! ECR, MOM WANTS THE BEST FOR YOU !
