PP84 - Linux release notes v1.1.5
==================================

            *Prototype programmer for Microchip PIC16C84*

1. General notes
=================
The binary version (pp84-1.1.5-bin.tar.gz or pp84-1.1.5-x.i386.rpm) was
built on a Red Hat Linux 4.2 system, with kernel 2.0.30 and libc 5.4.36.
If you have problems running this, then grab the source (pp84-1.1.5.tar.gz
or pp84-1.1.5-x.src.rpm), and compile yourself.
The executable (/usr/bin/pp84) is suid root in order to have access to
the parallel ports, even when run by a normal user. If you feel it a
security hole, then remove the suid bit. Oh, well someone will burn
your INHX8M format rocket launcher code into a PIC... :-) Seriously,
the code is not verified for security, it may contain buffer overflow
situations, which I don't know about. If you remove the suid bit, then
su to root for running it.
The input format is INHX8M, the addresses are compatible with Microchip's
MPASM output. Further description on what's programmed where, is in
pp84.doc. Maybe a man page will be available sometime.
It's possible to read the code from a PIC into an INHX8M file, which
can be programmed into another one later.
Description of the command line options is available with 'pp84 --help'.

URL: http://roo.unixnet.org/~nemeth/pp84

2. Hardware
============
There is a simple parallel port in-system prototype programmer,
designed by Steve Marchant, which is a modified Microchip Inc. AN589
thing. The schematics is in the documentation directory (prog84.pdf)
along with a sample 16C84 design (pic84.pdf) and a sample assembly
code (pic84.asm). I programmed dozens of PIC's with this simple
hardware, without a single error.
In case you have problems with the auto-detection of the hardware,
then you can use the force port command line options. This shouldn't
be needed in any case, you most likely have a hardware problem if
auto-detection doesn't work.
You can't use parallel ports, which are not recognised by the
kernel at boot time.
Theoretically you can use PP84 hardware with no on-board NE555
oscillator. In this case you must force the software to use a
specific parallel port. The software timing might not work on
very slow computers, but I think a 386SX/33 will do the job.
Programming on a board without the oscillator is not recommended
at all, it's just for helping you out, in case you don't have the
components handy. This may reduce the number of reprogramming
cycles due to the somewhat incorrect timing.
In the very unlikely case, that autodetection doesn't work, or
unreliable, but the oscillator works otherwise ok, you have
to force the programmer to the appropriate port, and use the '-t'
switch to override the software timer, and use hardware timer
instead.

3. Compilation
===============
In case you need to compile the source for yourself, the usual procedure
applies.
	make clean
	make all
	make install
Make sure, you are root for the install part.
After this you might want to move the example PIC asm code and the docs
to somewhere you'll find them later...
If using Red Hat, just get the src.rpm, and 'rpm --rebuild pp84*src.rpm',
and everything will be fine. Now I've put my hands on a Maximum RPM book,
so my forthcoming RPMs may be more professional :-)
Btw. this code is ix86 specific, but it can be modified to run on other
platforms as well. Anyone?

4. Bugs
========
This software is BugFree(TM), of course. Still, if you find one report
it to Laszlo Nemeth <nemeth@unixnet.org>. This only applies to the Linux
version. Not only bug reports, but bug fixes are also welcome, I will
include your name in the doc and the source code. ;-)
If you experience problems that might be related to incorrect timing,
then (1.) do programming on a less loaded system, (2.) fix the code,
and send me a copy. I've done some testing on a well loaded system, and
experienced no problems.

5. Legal stuff
===============
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License   
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

The original Turbo Pascal source was kindly provided for me
by Steve Marchant. The C code is derived from his code.

PIC, 16C84, MPASM are trademarks of Microchip, Incorporated,
other brand names mentioned are trademarks of their respective
owners.

					Laszlo Nemeth
				     <nemeth@unixnet.org>
