If you need more code space for your application, particularly for developing 89Cxx projects with C language, the Easy-Downloader V2.0 is the answer. It's suitable and cheap which anyone can build easily. This version is capable of writing intel-HEX file to a 89C51(4kB), 89C52(8kB) and 89C55(20kB). After compiling the source file in Assembly or C then download the hex file to the chip directly by using A:\>ez2 myfirst(.hex), say.
Figure 1 shows the circuit diagram of Easy-Downloader V2.0. The 89C51 with ez52.hex receives a 9600 baud serial data from PC and generates the appropriated signal applying to the ZIF socket. P0 is for bi-directional data transferring. P1 provides A0-A7, P2.0-P2.6 for A8-A14. Look at A14, our software uses P2.6, while ATMEL uses P3.0 instead. Programming mode selection is done by P3.4 to P3.7. See in ez52.c for details. The programming voltage shown a bit different from version 1.1, Vpp pin needs only +5V and +12V and simply activated by P3.3. The clock input pin X1 of the ZIF socket is derived from X2 without buffering. I have tested, no problem so far.
Click here for more detail & source code