diff --git a/AUTHORS b/AUTHORS
index e69de29b..6e998178 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -0,0 +1,9 @@
+AVRDUDE was written by:
+
+	Brian S. Dean  <bsd@bdmicro.com>.
+
+Contributors:
+
+	Joerg Wunsch <j@uriah.heep.sax.de>
+	Eric Weddington <eric@umginc.net>
+
diff --git a/CHANGELOG b/CHANGELOG
deleted file mode 100644
index bf1883a3..00000000
--- a/CHANGELOG
+++ /dev/null
@@ -1,234 +0,0 @@
-$Id$
-
-Approximate change log for AVRDUDE by version
-
-----------------------------------------------------------------------
-
-Version ???
-
-  * Now support Linux - added by "Theodore A. Roth" <troth@openavr.org>
-
-  * Now support Windows - added by "E. Weddington" <eric@umginc.net>
-
-  * Use 'configure' scripts to tailor the code to the system avrdude
-    is getting ready to be compiled on - added by "Theodore A. Roth"
-    <troth@openavr.org>
-
-  * Motorola S-Record support - submitted by "Alexey V.Levdikov "
-    <tsar@kemford.com>
-
-  * Support parallel programming on the STK500.  Introduce 'pagel' and
-    'bs2' keywords to the config file for this purpose.
-
-  * Add support for the AT90S2343
-
-  * Add support for the ATmega169
-
-  * Add ability to specify system defaults within the config file
-    (default parallel port, default serial port).
-
-  * Specify the default programmer seperately from the programmer
-    definition.  This is now done in the config file using the
-    'default_programmer' keyword.
-
-  * Support a per-user config file (~/.avrduderc) so that one can
-    override system wide defaults if desired.
-
-  * Follow the datasheet more closely for several parts in the "retry"
-    code when entering programming mode fails initially.  Introduce
-    'retry_pulse' to the config file for this purpose.
-
-
-
-Version 3.1.0
-
-  * This change represents a name change only.  There is currently an
-    effort to port AVRPROG to other platforms including Linux and
-    Windows.  Since Atmel's programmer binary that's included within
-    their AVR Studio software is named AVRPROG.EXE on the Windows OS,
-    there is the chance for confusion if we keep calling this program
-    AVRPROG as well.  Up until now the name hasn't really been a
-    problem since there was no chance to confuse 'avrprog' on Unix
-    with Atmel's AVRPROG because Atmel's tools only run on Windows.
-    But with the Unix 'avrprog' possibly being ported to Windows, I
-    felt a name change was the best way to avoid problems.
-
-    So - from this point forward, my FreeBSD Unix program formerly
-    known as AVRPROG will subsequently be known as AVRDUDE (AVR
-    Downloader/UploaDEr).
-
-    This change also represents a time when the AVRDUDE sources move
-    from my own private repository to a public repository.  This will
-    give other developers a chance to port AVRDUDE to other platforms
-    and extend its functionality to support additional programming
-    hardware, etc.
-
-    So goodbye AVRPROG, welcome AVRDUDE!
-
-Version 3.0.0
-
-  * Rewrite parts of the code to make it easy to support other types
-    of programmers besides the directly connected parallel port
-    programmer (PPI).
-
-  * Add support for Atmel's STK500 programmer/development board.  The
-    STK500's "paged mode" read/write is supported which makes this
-    programmer very fast.  This is sorely needed on parts with large
-    memories such as the ATmega128.  My 12K test program burns in
-    about 5 seconds, add another 5 to read it back out for
-    verification.
-
-
-Version 2.1.5:
-
-  * When getting ready to initiate communications with the AVR device,
-    first pull /RESET low for a short period of time before enabling
-    the buffer chip.  This sequence allows the AVR to be reset before
-    the buffer is enabled to avoid a short period of time where the
-    AVR may be driving the programming lines at the same time the
-    programmer tries to.  Of course, if a buffer is being used, then
-    the /RESET line from the programmer needs to be directly connected
-    to the AVR /RESET line and not via the buffer chip.
-
-    Feature contributed by Rick C. Petty <rick@KIWI-Computer.com>.
-
-  * When in interactive terminal mode and dumping memory using the
-    'dump <memtype>' command without any address information, and the
-    end of memory is reached, wrap back around to zero on the next
-    invocation.
-
-
-Version 2.1.4:
-
-  * Fix -Y option.
-
-
-Version 2.1.3:
-
-  * Be backward compatible when reading 2-byte rewrite cycle counters
-    as written by avrprog version 2.1.0.  Version 2.1.1 changed over
-    to a 4-byte counter, which caused avrprog versions 2.1.1 and 2.1.2
-    to report a negative count for parts that were initialized using
-    version 2.1.0.  Thanks to Joerg Wunsch for noticing this.
-
-
-Version 2.1.2:
-
-  * Add '-V' option to disable automatic verify check with uploading
-    data.
-
-
-Version 2.1.1:
-
-  * Fix ATmega128 instruction sequences for reading fuse bits -
-    contributed by Joerg Wunsch.
-
-  * Modify erase-rewrite cycle counter code to use a 4 byte counter
-    instead of a two byte counter.
-
-
-Version 2.1.0:
-
-  * Implement a per-part erase-rewrite cycle counter; requires the use
-    of two bytes of EEPROM memory.
-
-
-Version 2.0.5:
-
-  * Support for ATtiny15 - contributed by Asher Hoskins
-
-
-Version 2.0.4:
-
-  * Config file fixes for various parts.
-
-
-Version 2.0.3:
-
-  * Work around problem programming fuse bits on parts like the
-    at90s4433 as described in the following errata:
-
-      http://www.atmel.com/atmel/acrobat/doc1280.pdf
-
-  * Add part definition for at90s4414, at90s4433.
-
-  * Add fuse/lock bit memory instructions for the at90s1200,
-    at90s2333, at90s4433 and at90s8515.
-
-  * Fix setting of programmer status LEDs under certain write-fail
-    conditions.
-
-
-Version 2.0.2 :
-
-  * Fix writing to read-only memories such as the lock bits of the
-    AT90S2313.
-
-  * Copyright updates.
-
-
-Version 2.0.1 :
-
-  * Use correct parallel port pins for VCC.
-
-  * Add programmer definition for Atmel's STK200.
-
-  * Add programmer definition for the AVR3 board.
-
-  * Fix address bit encoding for many parts.
-
-  * Allow the ``BUFF'' signal to be asserted by multiple pins of the
-    parallel port (like VCC) instead of just one.  The STK200 appears
-    to need this feature.
-
-
-Version 2.0.0 :
-
-  * Add support for programming fuse and lock bits if supported by the
-    part.
-
-  * Move instruction encoding into the config file.  Now any part can
-    be supported as long as it uses the same basic serial programming
-    instruction format.
-
-  * Add part definitions for the ATMega163 and ATMega8 devices.
-
-
-Version 1.4.3 :
-
-  * Mostly internal code cleanup.
-
-
-Version 1.4.2 :
-
-  * Fixes for ATMega paged memory support.
-
-  * Support for ATMega16 device.
-
-
-Version 1.4.1 :
-
-  * No functional changes, update to Copyrights only.
-
-
-Version 1.4.0 :
-
-  * Add part definitions to the config file.
-
-  * Add initial support for Atmel's ATMega paged memory parts.
-
-  * Config file documentation added.
-
-  * Add a definition for the Dontronics DT006 programmer.
-
-  * Fix Intel Hex support for addresses larger than 64k.
-
-
-Version 1.3.0 :
-
-  * Make programmer pin assignments configurable.
-
-
-Version 1.2.2 :
-
-  * Initial public release
diff --git a/ChangeLog b/ChangeLog
index 0ead8444..8a832444 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1 +1,591 @@
-See the CHANGELOG file.
+2003-03-11  Theodore A. Roth  <troth@openavr.org>
+
+	* AUTHORS: Updated.
+	* CHANGELOG: Move contents to NEWS and remove file.
+	* ChangeLog: All of the changes for this year.
+	* ChangeLog-2001: All 2001 changes.
+	* ChangeLog-2002: All 2002 changes.
+	* Makefile.am (EXTRA_DIST): Remove CHANGELOG and and Change-200[12].
+	* NEWS: Moved contents of CHANGELOG file here.
+	* README: Add note pointing to savannah site.
+
+2003-03-11  Eric Weddington <eric@umginc.net>
+
+	* doc/avrdude.texi:
+	Add Install and Documentation sections for Windows. Fix typo.
+
+2003-03-10  Theodore A. Roth  <troth@openavr.org>
+
+	* Makefile.am: * Makefile.am (EXTRA_DIST): Add CHANGELOG.
+
+2003-03-10  Brian S. Dean  <bsd@bdmicro.com>
+
+	* stk500.c: Disable debugging printf.
+
+	* configure.ac: Update version number in preparation for release.
+
+2003-03-10  Theodore A. Roth  <troth@openavr.org>
+
+	* doc/avrdude.texi:
+	Add comment before each node to make them stand out better.
+	Use @option{} command for options instead of @code{}.
+	Merge FreeBSD and Linux platform dependent information.
+
+2003-03-10  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avrdude.1: Minor man page updates to better reflect reality.
+
+2003-03-10  Joerg Wunsch <j@uriah.heep.sax.de>
+
+	* bootstrap:
+	Export all the AUTO* variables.  Hopefully, that way the generated
+	Makefile might get them correctly.
+
+	* bootstrap:
+	Export ${AUTOCONF} so automake will find it by whatever name it will be
+	called today.
+
+2003-03-06  Eric Weddington <eric@umginc.net>
+
+	* doc/avrdude.texi:
+	Add notes about ability to list parts and list programmers in the
+	config file in -p and -c descriptions. Change info about where to
+	find Windows search method in -C description.
+
+	* main.c:
+	Change software version from hardcoded value to getting it from
+	the configuration.
+
+2003-03-06  Theodore A. Roth  <troth@openavr.org>
+
+	* avrdude.spec.in: * avrdude.spec.in: Add docs sub-package.
+	Add %post and %preun scriptlets for handling info files.
+
+	* configure.ac, doc/Makefile.am:
+	* configure.ac: Add --enable-versioned-doc option and set DOC_INST_DIR.
+	* doc/Makefile.am: Add rules to install docs in DOC_INST_DIR.
+
+	* doc/Makefile.am:
+	Delete the lines which where commented out in previous commit.
+
+	* configure.ac, doc/Makefile.am:
+	* configure.ac: Remove hack to make work with automake-1.5.
+	* doc/Makefile.am: Remove extra rules that were needed to work with
+		automake-1.5.
+
+	* bootstrap:
+	* bootstrap: Force use of autoconf-2.57 and automake-1.7.x.
+
+2003-03-05  Joerg Wunsch <j@uriah.heep.sax.de>
+
+	* avrdude.conf.in: Add a definition for the popular Ponyprog dongle.
+
+	Submitted by:	Daniel Williamson <dannyw@maconmgt.co.uk>
+
+2003-03-05  Brian S. Dean  <bsd@bdmicro.com>
+
+	* main.c:
+	Check the programmer type against 'STK500' instead of the programmer
+	name when checking to see if we should default to the default_serial
+	port instead of the default_parallel port.  This has us do the right
+	thing for the new 'avrisp' programmer.
+
+	* stk500.c:
+	Make the page size used for non-paged parts for the 'paged_write'
+	command be 128 bytes.  This cuts 6 seconds off the programming time
+	for uploading a 6K file into an AT90S8515 vs the time loading the same
+	file using a 16 byte buffer, and the response feedback is still good.
+
+	* avr.c, stk500.c:
+	Fix stk500 page write (Program Page command).  This is supported after
+	all on non-paged-memory parts.  The problem was that the page size was
+	defaulting to 256 (maximum for the stk500), but the timeout for a
+	response from the stk500 before declaring it dead was only 0.5
+	seconds.  But it takes much longer than 0.5 seconds to program 256
+	bytes, so we just weren't waiting long enough.
+
+	Fix this in two ways - increase the timeout to 5 seconds, and decrease
+	the page size to 16 bytes for non-paged parts.  The programming time
+	for 16 bytes is short enough to provide the user with some feedback
+	that something is happening.
+
+	* avr.c, stk500.c:
+	Don't call the programmer's 'paged_write' routine unless the memory
+	itself is paged as it doesn't appear to work otherwise.
+
+	* avrdude.conf.in: Fix device codes for at90s8515 and at90s8535.
+
+	* avrdude.conf.in:
+	Add PAGEL and BS2 parms for parts I have datasheets for.
+
+	* config_gram.y:
+	Do that last commit slightly differently - this way results in no
+	shift-reduce conflicts.
+
+	* config_gram.y:
+	It shouldn't be an error to have an empty configuration file.  This
+	causes some shift-reduce conflicts, but I think they are OK.
+
+	* main.c:
+	Print out a list of valid parts for '-p ?' and a list of valid
+	programmers for '-c ?'.
+
+2003-03-04  Eric Weddington <eric@umginc.net>
+
+	* doc/avrdude.texi: Minor Windows doc corrections.
+
+	* doc/TODO: Add TODO file.
+
+	* avrdude.conf.in: Add AVR ISP programmer.
+
+2003-03-04  Brian S. Dean  <bsd@bdmicro.com>
+
+	* stk500.c:
+	Don't try to set extended device programming parameters if they
+	haven't been specified in the config file for the part.
+
+	* stk500.c: Set extended device parameters for all firmware versions.
+
+	* stk500.c:
+	First attempt at supporting STK500 firmware past 1.10.  Thanks to
+	Jason Kyle for the needed protocol information.
+
+2003-03-03  Theodore A. Roth  <troth@openavr.org>
+
+	* doc/Makefile.am:
+	* doc/Makefile.am: Add ps and pdf rules since they aren't supplied by
+	automake versions prior to 1.7.
+
+	* doc/avrdude.texi:
+	* doc/avrdude.texi: Add node and menu information for the info system.
+
+	* Makefile.am, configure.ac, doc/Makefile.am, doc/avrdude.texi:
+	* Makefile.am (SUBDIRS): Add doc dir.
+	* configure.ac (AC_CONFIG_FILES): Add doc/Makefile.
+	* doc/Makefile.am: New file.
+	* doc/avrdude.texi: Use automatically generated version.texi.
+
+2003-03-02  Brian S. Dean  <bsd@bdmicro.com>
+
+	* doc/avrdude.texi: Initial manual.
+
+2003-02-27  Theodore A. Roth  <troth@openavr.org>
+
+	* term.c: * term.c: Use fgets() if readline() is not available.
+
+2003-02-27  Joerg Wunsch <j@uriah.heep.sax.de>
+
+	* bootstrap:
+	Oops, accidentally spammed the repository with my private version of
+	"bootstrap".  Back out that change.
+
+	* bootstrap, lexer.l:
+	Ignore \r as white space, to make the Windows people happy.
+
+2003-02-27  Theodore A. Roth  <troth@openavr.org>
+
+	* Makefile.am (EXTRA_DIST): Add avrdude.spec and make entries one
+	per line so future patches are obvious as to what changed.
+	* avrdude.spec.in: New file to support creation of binaries in rpm
+	format.
+	* configure.ac (AC_OUTPUT): Add avrdude.spec.  Reorder so that
+	Makefile is the last entry.
+
+2003-02-26  Theodore A. Roth  <troth@openavr.org>
+
+	* Makefile.am (SUBDIRS): Add windows dir.
+	* configure.ac: If $target is a windows system, build whats in
+	windows sub dir.
+	* windows/Makefile.am: New file.
+
+2003-02-25  Theodore A. Roth  <troth@openavr.org>
+
+	* ChangeLog: Point reader to the CHANGELOG file.
+	* Makefile.am (EXTRA_DIST): Rename avrdude.conf.sample to
+	avrdude.conf.in.
+	Remove avrdude.conf and distclean-local rules.
+	Add install-exec-local and backup-avrdude-conf rules.
+	* avrdude.conf.in:
+	Set default_parallel to "@DEFAULT_PAR_PORT@" for autoconf expansion.
+	Set default_serial to "@DEFAULT_SER_PORT@" for autoconf expansion.
+	* configure.ac: Add call to AC_CANONICAL_{BUILD,HOST,TARGET} macros.
+	Set DEFAULT_PAR_PORT and DEFAULT_SER_PORT based on $host.
+	Add copyright header.
+	Define avrdude_version so AC_INIT and AM_INIT_AUTOMAKE are sure
+	to get the same version.
+
+	* avrdude.conf.in, avrdude.conf.sample:
+	Renamed avrdude.conf.sample to avrdude.conf.in.
+
+2003-02-25  Eric Weddington <eric@umginc.net>
+
+	* ppiwin.c: CRs again.
+
+	* confwin.c, confwin.h: Get rid of CRs.
+
+	* main.c, Makefile.am: Get rid of CRs again.
+
+2003-02-24  Joerg Wunsch <j@uriah.heep.sax.de>
+
+	* avrdude.1: Atmel has rearranged their web site, so now the AVR
+	docs have been moved to a more logically sounding URL.
+
+2003-02-24  Eric Weddington <eric@umginc.net>
+
+	* Makefile.am, main.c: Integrate Windows search of config files.
+
+	* confwin.c, confwin.h: config file search on Windows.
+
+	* ppiwin.c: Change port value from lpt1alt to lpt3. Other
+	formatting changes.
+
+	* windows/giveio.c:
+	Add giveio device driver source. Requires MS DDK to build.
+
+	* windows/giveio.sys: Add giveio device driver binary.
+
+	* giveio.sys, install_giveio.bat, remove_giveio.bat, status_giveio.bat:
+	Move Windows specific files.
+
+	* windows/loaddrv.c, windows/loaddrv.h, windows/remove_giveio.bat:
+	* windows/status_giveio.bat, windows/install_giveio.bat:
+	Add Windows specific files.
+
+	* main.c: Usage back to stderr.
+
+2003-02-22  Brian S. Dean  <bsd@bdmicro.com>
+
+	* CHANGELOG: Add note about .avrduderc.
+
+	* avr.c, avrdude.conf.sample, avrpart.h, config_gram.y, main.c,
+	* par.c, pgm.c, pgm.h:
+	Add the ability to read a per-user config file located at
+	$HOME/.avrduderc.  Entries from .avrduderc take precedence over those
+	from the system wide config file in ${PREFIX}/etc/avrdude.conf.
+
+	Track and display the config file name and line number when we print
+	out the available parts and programmers.  This is useful in case
+	someone has overridden a definition in their .avrduderc file and is
+	wondering why the definition in the system wide config file is not
+	being used.
+
+	Remove the default programmer 'stk500' from the distributed config
+	file.
+
+	* CHANGELOG: Spelling.
+
+2003-02-21  Brian S. Dean  <bsd@bdmicro.com>
+
+	* CHANGELOG:
+	Put some stuff in the CHANGELOG for this upcoming new version before I
+	forget.
+
+	* main.c:
+	Update comment due to removal of the default parallel port pin config.
+
+	* config.c, config.h, config_gram.y, lexer.l, main.c:
+	* avrdude.conf.sample:
+	Introduce 'default_programmer' to the config file instead of requiring
+	one of the programmers to be tagged "default" within its definition.
+
+	Also, axe the notion of a compiled-in default programmer.  It is
+	kind've pointless now that nearly all configuration comes from the
+	config file, thus, avrdude is not very useful without the config file,
+	and thus, having a programmer compiled-in offers little or no benefit.
+
+2003-02-21  Eric Weddington <eric@umginc.net>
+
+	* main.c: Change usage text to be verbose.
+
+	* giveio.sys: Add Windows parallel port device driver (binary).
+
+	* install_giveio.bat, remove_giveio.bat, status_giveio.bat:
+	Windows batch files to work with giveio.sys.
+
+2003-02-21  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avrdude.conf.sample, config.c, config.h, config_gram.y, lexer.l:
+	* main.c:
+	Add port name defaults to the config file instead of hard-coding.
+	This adds 'default_parallel' and 'default_serial' keywords to the
+	grammar, which take quoted string arguments.
+
+	* avrdude.conf.sample:
+	Document the recent additions to the config file.
+
+	* stk500.c, avr.c, avrpart.h, config_gram.y, lexer.l, par.c:
+	Add the ability to specify which pin to pulse when retrying entry into
+	programming mode.  Use 'retry_pulse' in the per-part specification
+	that can currently take values of 'reset' or 'sck', the default being
+	'sck' which preserves the previous behaviour.  Some newer parts
+	indicate that /RESET should be pulsed, while older parts say to pulse
+	SCK.
+
+2003-02-20  Eric Weddington <eric@umginc.net>
+
+	* main.c, par.c:
+	Make verbose global. Make debug code in par_cmd() based on verbose=2.
+
+2003-02-20  Brian S. Dean  <bsd@bdmicro.com>
+
+	* stk500.c: Fix pseudo/full parallel mode selection logic.
+
+	* avrdude.conf.sample:
+	Woops, didn't really mean to commit those changes that slipped in with
+	the last commit.  Those were just there for testing.
+
+	* avr.c, avrdude.conf.sample, avrpart.h, config_gram.y, lexer.l:
+	* stk500.c:
+	Add 'serial' and 'parallel' keywords to the grammar so that one can
+	say whether parts support these programming modes or not.  Possible
+	values for 'serial' are 'yes' or 'no'.  Possible values for 'parallel'
+	are 'yes', 'no', or 'pseudo'.  Add a bit mask of flags to the AVRPART
+	structure to capture these settings.  Use these within
+	stk500_initialize() to set the device parameters correctly.
+
+	Defaults for 'serial' and 'parallel' are 'yes' unless specified
+	otherwise.
+
+2003-02-20  Eric Weddington <eric@umginc.net>
+
+	* Makefile.am, ppiwin.c: Get rid of CRs.
+
+	* Makefile.am: Add ppiwin.c to avrdude_SOURCES.
+
+	* ppiwin.c: Added ppiwin.c: Windows parallel port driver.
+
+	* stk500.c:
+	Add error message for fail to enter programming mode. Fix typos.
+
+2003-02-20  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avr.c, avrdude.conf.sample, avrpart.h, config_gram.y, lexer.l:
+	Add a few parameters needed for parallel programming: assignment of
+	PAGEL and BS2 signals and the disposition of the reset pin
+	('dedicated' or 'io').
+
+2003-02-20  Theodore A. Roth  <troth@openavr.org>
+
+	* avrdude.1: Fix spacing for m169 entry. (tabs not spaces ;-)
+
+2003-02-20  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avrdude.1, fileio.c, main.c: Add Motorola S-record support.
+
+	Submitted by:		"Alexey V.Levdikov" <tsar@kemford.com>
+
+2003-02-19  Theodore A. Roth  <troth@openavr.org>
+
+	* avrdude.1: Add m169 to list of supported targets.
+
+2003-02-19  Joerg Wunsch <j@uriah.heep.sax.de>
+
+	* avrdude.conf.sample, avrdude.1:
+	My colleague contributed a part definition for the AT90S2343.
+
+	Submitted by:	Mirko Kaffka <mirko@mkaffka.de>
+
+2003-02-18  Theodore A. Roth  <troth@openavr.org>
+
+	* avrdude.conf.sample:
+	Add support for mega169. (tested with stk500 with 1.7 firmware)
+
+	* avrdude.conf.sample:
+	Add commments to separate parts (makes it easier for the eye to parse).
+
+2003-02-15  Theodore A. Roth  <troth@openavr.org>
+
+	* Makefile.am: Add $srcdir to sample config filename so that
+	building in a separate dir works.
+
+2003-02-15  Joerg Wunsch <j@uriah.heep.sax.de>
+
+	* Makefile.am:
+	Only GNU make sets $< in non-inference rules, so rather explicitly
+	spell the source file(s) to remain compatible.
+
+2003-02-14  Theodore A. Roth  <troth@openavr.org>
+
+	* Makefile.am: Add distclean rule and EXTRA_DIST list to get 'make
+	distcheck' to succeed.
+
+	These changes add basic support for a autoconf/automake based
+	build system.
+
+	* .cvsignore: Ignore autoconf files.
+	* AUTHORS: New file.
+	* ChangeLog: New file.
+	* Makefile: Removed file.
+	* Makefile.am: New file.
+	* NEWS: New file.
+	* README: New file.
+	* bootstrap: New file.
+	* configure.ac: New file.
+	* avr.c: Include ac_cfg.h (generated by autoconf).
+	* config.c: Include ac_cfg.h.
+	Include config_gram.h instead of y.tab.h.
+	* config.h: If HAS_YYSTYPE is not defined, define YYSTYPE.
+	* config_gram.y: Include ac_cfg.h.
+	* fileio.c: Include ac_cfg.h.
+	* lexer.l: Include config_gram.h instead of y.tab.h.
+	* lists.c: Include ac_cfg.h.
+	* main.c: Include ac_cfg.h.
+	* par.c: Include ac_cfg.h.
+	* pgm.c: Include ac_cfg.h.
+	* ppi.c: Include ac_cfg.h.
+	* stk500.c: Include ac_cfg.h.
+	* term.c: Include ac_cfg.h.
+
+2003-02-14  Brian S. Dean  <bsd@bdmicro.com>
+
+	* stk500.c: Fix typos.  Fix error messages.
+
+2003-02-13  Brian S. Dean  <bsd@bdmicro.com>
+
+	* Makefile, avrdude.conf.sample, config_gram.y, lexer.l, main.c:
+	* par.c, par.h, ppi.c, ppi.h, stk500.c:
+	Split higher level parallel port programmer code off from ppi.c into
+	its own file par.c, leaving low level parallel port accessor routines
+	in ppi.c to help with portability.  Change the programmer type to
+	'PAR' now instead of 'PPI' - 'PAR' represents the parallel port
+	programmer type.
+
+	Be more liberal with 'static' function declarations within the
+	programmer implimentation files - these functions should never be
+	called directly - always use the programmer function references.
+
+	There are still a few places in 'main.c' that directly reference the
+	parallel programmer explicitly (par_getpinmask).  These should be
+	fixed somehow.
+
+	Axe a few unused functions.
+
+2003-02-12  Theodore A. Roth  <troth@openavr.org>
+
+	* .cvsignore: New file.
+
+	* stk500.c: Remove need for inttypes.h.
+
+	* lexer.l: Define YY_NO_UNPUT to quell a compiler warning.
+
+	* Makefile: Remove YACC assignment.
+	Add '-b y' options to YACC invocation.
+	Remove leading '-' from 'include .depend'.
+
+2003-02-12  Joerg Wunsch <j@uriah.heep.sax.de>
+
+	* config_gram.y:
+	Declare the internally used static functions on top, to get rid of the
+	compiler warnings.
+
+	Reported by:	bison-generated parsers
+
+2003-02-11  Theodore A. Roth  <troth@openavr.org>
+
+	* linux_ppdev.h: New file.
+	* ppi.c: Include system dependant parallel port interface file.
+	(ppi_open): Add call to ppi_claim().
+	(ppi_close): Add call to ppi_release().
+	* ppi.h: Define ppi_claim() and ppi_release() as NOPs if not previously
+	defined.
+	* stk500.c: Include inttypes header to quell compiler warning.
+
+2003-02-11  Joerg Wunsch <j@uriah.heep.sax.de>
+
+	* pgm.c, ppi.c, stk500.c: Fix some implicit declaration warnings.
+
+	* config_gram.y:
+	Move the C declarations to the top of the file.  While [b]yacc doesn't
+	care, bison does, and this is normally the way it's meant to be
+	anyway.
+
+2003-02-11  Theodore A. Roth  <troth@openavr.org>
+
+	* Makefile: Generate dependencies specific to the target system.
+	Explicitly use byacc.
+
+	* Makefile:
+	Remove reference to avr-gcc in depend rule (cut & paste error).
+
+2003-02-09  Brian S. Dean  <bsd@bdmicro.com>
+
+	* main.c, pgm.c, pgm.h, pindefs.h, ppi.c, ppi.h, stk500.c:
+	* stk500.h, stk500_private.h, term.c, term.h, CHANGELOG, COPYING:
+	* Makefile, avr.c, avr.h, avrdude.1, avrdude.conf.sample:
+	* avrdude.pdf, avrpart.h, config.c, config.h, config_gram.y:
+	* fileio.c, fileio.h, lexer.l, lists.c, lists.h:
+	Test commit in new public repository.  Before this time this repo
+	existed on a private system.  Commits made by 'bsd' on the old system
+	were made by Brian Dean (bdean on the current system).
+
+2003-02-08  Brian S. Dean  <bsd@bdmicro.com>
+
+	* Makefile, avr.c, avr.h, avrdude.1, avrpart.h, config.c,
+	* config.h, config_gram.y, fileio.c, fileio.h, lexer.l, lists.c:
+	* lists.h, main.c, pgm.c, pgm.h, pindefs.h, ppi.c, ppi.h:
+	* stk500.c, stk500.h, term.c, term.h:
+	The last part of that last commit message should read:
+
+		All others - modify program description.
+
+	* Makefile, avr.c, avr.h, avrdude.1, avrpart.h, config.c:
+	* config.h, config_gram.y, fileio.c, fileio.h, lexer.l, lists.c:
+	* lists.h, main.c, pgm.c, pgm.h, pindefs.h, ppi.c, ppi.h:
+	* stk500.c, stk500.h, term.c, term.h:
+	Makefile: include a target to automatically generate the dependency
+	          list.
+
+	All others
+
+2003-02-06  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avrdude.1: Update license to GPL, permission by Joerg Wunsch.
+
+	* lexer.l: Add GPL.
+
+	* Makefile, config_gram.y: Add GPL to the Makefile and config_gram.y.
+
+	* Makefile, stk500.h:
+	Add stk500.h as a dependency for stk500.c.  Remove carraige returns
+	from stk500.h - don't know how those got in there (pointed out by Ted
+	Roth).
+
+	* COPYING, avr.c, avr.h, avrpart.h, config.c, config.h, fileio.c:
+	* fileio.h, lists.c, lists.h, main.c, pgm.c, pgm.h, pindefs.h:
+	* ppi.c, ppi.h, stk500.c, stk500.h, term.c, term.h:
+	Re-license using the GNU GPL.  Thanks to Ted Roth for the patch.
+
+	* avr.c, avr.h, config.c, config.h, config_gram.y, fileio.c:
+	* fileio.h, lexer.l, lists.c, lists.h, main.c, pgm.c, pgm.h:
+	* pindefs.h, ppi.c, ppi.h, stk500.c, stk500.h, term.c, term.h:
+	Get rid of the verbose printing of individual file CVS version ids.
+	This was intended to be used for identifying code in the field for
+	incoming bug reports, but I've never really found it all that useful.
+
+	* CHANGELOG, Makefile, Makefile.inc, avr.c, avrdude.1:
+	* avrdude.conf.sample, config_gram.y, lexer.l, main.c, stk500.c:
+	* term.c:
+	Change the name from AVRPROG to AVRDUDE.
+
+	This change represents a name change only.  There is currently an
+	effort to port AVRPROG to other platforms including Linux and Windows.
+	Since Atmel's programmer binary that's included within their AVR
+	Studio software is named AVRPROG.EXE on the Windows OS, there is the
+	chance for confusion if we keep calling this program AVRPROG as well.
+	Up until now the name hasn't really been a problem since there was no
+	chance to confuse 'avrprog' on Unix with Atmel's AVRPROG because
+	Atmel's tools only run on Windows.  But with the Unix 'avrprog'
+	possibly being ported to Windows, I felt a name change was the best
+	way to avoid problems.
+
+	So - from this point forward, my FreeBSD Unix program formerly
+	known as AVRPROG will subsequently be known as AVRDUDE (AVR
+	Downloader/UploaDEr).
+
+	This change also represents a time when the AVRDUDE sources move from
+	my own private repository to a public repository.  This will give
+	other developers a chance to port AVRDUDE to other platforms and
+	extend its functionality to support additional programming hardware,
+	etc.
+
+	So goodbye AVRPROG, welcome AVRDUDE!
diff --git a/ChangeLog-2001 b/ChangeLog-2001
new file mode 100644
index 00000000..d6c7359c
--- /dev/null
+++ b/ChangeLog-2001
@@ -0,0 +1,598 @@
+2001-12-30  Brian S. Dean  <bsd@bdmicro.com>
+
+	* main.c: Update version.
+
+	* avrdude.conf.sample: Clarify a comment.
+
+	* avrdude.conf.sample: fix address bits
+
+	* avrdude.1: Bring up to date.
+
+2001-12-29  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avrdude.conf.sample: Add the AVR3 progammer.
+
+	* avr.c, avrdude.conf.sample, config_gram.y, main.c, pindefs.h:
+	Fix VCC assertion.
+
+	Make the BUFF pin a mask like VCC to allow multiple pins to be
+	asserted at the same time (STK200 has two buffer enable lines).
+
+	Add the STK200 programmer.
+
+	Fix EEPROM address line selection for several parts.
+
+2001-12-15  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avrdude.conf.sample: fix spelling error
+
+2001-11-24  Brian S. Dean  <bsd@bdmicro.com>
+
+	* Makefile:
+	Change "WARNING" to "NOTE" when overwriting the avrprog.conf file.
+
+	* avrdude.1: Add my e-mail address.
+
+	* avrdude.conf.sample:
+	Add comments about instruction formats.  Correct an instruction
+	specification (cut&paste error).
+
+2001-11-21  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avr.c, config_gram.y, lexer.l, term.c:
+	In interactive mode, reset the address and length if we start dumping
+	a memory type different than the previous one.
+
+	* avr.c, avrdude.conf.sample, config_gram.y:
+	Allow instruction data to be specified more flexibly, which can be
+	used to make the instruction input more readable in the config file.
+
+	* main.c: Bump version number.
+
+	* Makefile, avr.c, avr.h, avrdude.conf.sample, config.c, config.h:
+	* config_gram.y, fileio.c, fileio.h, lexer.l, main.c, term.c:
+	This is a major re-write of the programming algorithms.  The Atmel
+	serial programming instructions are not very orthoganal, i.e., the
+	"read fuse bits" instruction on an ATMega103 is an entirely different
+	opcode and data format from the _same_ instruction for an ATMega163!
+	Thus, it becomes impossible to have a single instruction encoding
+	(varying the data) across the chip lines.
+
+	This set of changes allows and requires instruction encodings to be
+	defined on a per-part basis within the configuration file.  Hopefully
+	I've defined the encoding scheme in a general enough way so it is
+	useful in describing the instruction formats for yet-to-be invented
+	Atmel chips.  I've tried hard to make it match very closely with the
+	specification in Atmel's data sheets for their parts.  It's a little
+	more verbose than what I initially hoped for, but I've tried to keep
+	it as concise as I could, while still remaining reasonably flexible.
+
+2001-11-19  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avr.c, avr.h, avrdude.conf.sample, main.c, ppi.c, term.c:
+	Add support for ATMega163.
+
+	Add support for reading/writing ATMega163 lock and fuse bits.
+	Unfortunately, in looking at the specs for other ATMega parts, they
+	use entirely different instruction formats for these commands.  Thus,
+	these routines won't work for the ATMega103, for example.
+
+	Add support for sending raw command bytes via the interactive terminal
+	interface.  This allows one to execute any programming instruction on
+	the target device, whether or not avrprog supports it explicitly or
+	not.  Thus, one can use this feature to program fuse / lock bits, or
+	access any other feature of a current or future device that avrprog
+	does not know how to do.
+
+	Add in comments, an experimental instruction format in the
+	configuration file.  If this works out, it would allow supporting new
+	parts and non-orthoganal instructions across existing parts without
+	making avrprog code changes.
+
+2001-11-17  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avrdude.conf.sample: Add ATMEGA163 part.
+
+2001-11-11  Brian S. Dean  <bsd@bdmicro.com>
+
+	* main.c: output formatting
+
+2001-11-05  Brian S. Dean  <bsd@bdmicro.com>
+
+	* ppi.c: Get ppi.h from /usr/include, not /sys.
+
+2001-10-31  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avr.c, avrdude.conf.sample, main.c: Correct version string.
+	Update read/write status more frequently.
+	Prefix ATMega parts with an 'm'.
+
+2001-10-16  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avr.c: Change ording for memory display.
+
+	* config_gram.y: comment
+
+	* avr.c, avr.h, avrdude.conf.sample, config_gram.y, lexer.l, term.c:
+	Fix (again, hopefully) page addressing for the ATMega parts.
+
+	Rename the poorly chosen name "bank" to "page" for page addressing.
+	Atmel calls it "page" in their documentation.
+
+	* config_gram.y, main.c: Fix an (non)exit.
+	Silence a couple of compiler warnings.
+
+	* avr.c, avr.h, avrdude.conf.sample, config_gram.y, main.c:
+	Fix ATMega flash addressing.  Add an ATMEGA16 part.  Perform sanity
+	checking on the memory parameters for parts that do bank addressing.
+
+2001-10-15  Brian S. Dean  <bsd@bdmicro.com>
+
+	* config.c, config.h, lists.h: Add copyright.
+
+	* config_gram.y, lexer.l, lists.c: Add copyrights.
+
+	* Makefile: Attempt to install avrprog.conf.
+
+	* avrdude.conf.sample: Correct dt006 pinout.
+
+	* Makefile, lexer.l:
+	Try and detect an old-style config file and print an appropriate error
+	message and a suggestion for correcting it.
+
+	* Makefile, avr.c, avrdude.1, avrdude.conf.sample: Update the man page.
+
+	Miscellaneous minor cleanups.
+
+2001-10-14  Brian S. Dean  <bsd@bdmicro.com>
+
+	* Makefile, Makefile.inc, avr.c, avr.h, avrdude.conf.sample:
+	* config.c, config.h, config_gram.y, lexer.l, lists.c, lists.h:
+	* main.c, pindefs.h, term.c:
+	Use lex/yacc for parsing the config file.  Re-work the config file
+	format using a more human-readable format.
+
+	Read part descriptions from the config file now instead of hard-coding
+	them.
+
+	Update usage().
+
+	Cleanup unused code.
+
+	* Makefile, avr.c, avr.h, fileio.c, term.c:
+	First cut at supporting the ATmega 103 which uses bank addressing and
+	has a 128K flash.
+
+	Due to the bank addressing required, interactive update of the flash
+	is not supported, though the eeprom can be updated interactively.
+	Both memories can be programmed via non-interactive mode.
+
+	Intel Hex Record type '04' is now generated as required for outputing
+	memory contents that go beyond 64K.
+
+2001-10-13  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avr.c, avr.h, fileio.c, fileio.h, main.c, ppi.c, ppi.h, term.c:
+	* term.h:
+	Style fixes.
+
+	* avr.c, avr.h, fileio.c, fileio.h, main.c, term.c:
+	Commit changes in preparation for support the ATMega line.
+
+2001-10-01  Brian S. Dean  <bsd@bdmicro.com>
+
+	* Makefile: Don't override CFLAGS.
+
+	* avrdude.1: Correct default pin assignment.
+
+	* avr.c, fileio.c, main.c, ppi.c, term.c:
+	Remove debugging code - it served its purpose.
+
+	Update copyrights.
+
+2001-09-21  Brian S. Dean  <bsd@bdmicro.com>
+
+	* main.c:
+	Be sure to read the exit specs after the pin configuration has been
+	assigned, otherwise, we may apply the exit specs to the wrong pins.
+
+	* main.c: debugging
+
+2001-09-20  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avrdude.1, avrdude.conf.sample, main.c:
+	Prefix pin config entries in the config file with a "c:".  Later, I
+	might make part descriptions read in this way and we can use a
+	different letter for those (p).  This will make the parsing easier to
+	distinguish between the entry types.
+
+	* main.c: Initialize pin configuration description.
+
+2001-09-19  Brian S. Dean  <bsd@bdmicro.com>
+
+	* AVRprog.pdf, Makefile, avr.c, avrdude.1, avrdude.conf.sample:
+	* avrdude.pdf, fileio.c, fileio.h, main.c, pindefs.h, term.c:
+	Make the pin definitions configurable based on entries in a config
+	file.  This makes supporting other programmers much easier.
+
+	Rename AVRprog.pdf to avrprog.pdf.
+
+2001-04-29  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avrprog-programmer.jpg: Remove this image file from the repository.
+
+2001-04-26  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avrprog-schematic.jpg:
+	Remove this image, use AVRprog.pdf as the preferred schematic for the
+	programmer.
+
+2001-04-25  Brian S. Dean  <bsd@bdmicro.com>
+
+	* AVRprog.pdf, Makefile, avrdude.1:
+	Add a schematic provided by Joerg Wunch and also update the manual
+	page (also updated by Joerg) to reference the schematic.
+
+2001-02-25  Brian S. Dean  <bsd@bdmicro.com>
+
+	* Makefile, Makefile.inc: Automate dependency generation.
+
+2001-02-08  Brian S. Dean  <bsd@bdmicro.com>
+
+	* main.c: Turn off ready led when finished programming.
+
+	* main.c: update version
+
+	* avr.c, main.c: Correct a few comments.
+
+	* Makefile, avr.c, term.c: Makefile : update dependencies
+
+	avr.c : correct status led updates
+
+	term.c : update status leds on write, make the address and length
+	         arguments for dump optional.
+
+2001-01-26  Brian S. Dean  <bsd@bdmicro.com>
+
+	* main.c: Version 1.1
+
+	* main.c:
+	Hmmm ... cvs co -D <timestamp> does not work.  Change the revision
+	timestamp to a full date/time value.
+
+	* avr.c, fileio.c, main.c, ppi.c, term.c:
+	Add a -V option to display the version information about each
+	component module.  This is intended for support purposes, so that I
+	can tell unambiguously what version a binary out in the field is.
+
+	Additionally, display a revision timestamp along with the version
+	number.  This also is intended for aiding in support and is the Unix
+	time of the latest component module.  Having this, should allow me to
+	do a "cvs co -D timestamp avrprog" and get exactly the source of the
+	version that is being reported.
+
+	* fileio.c:
+	Return the maximum address (+1) written as opposed to the actual
+	number of bytes written.  The presence of an Intel Hex address
+	record can cause these two number to be different; but the callers
+	of this routine need the former.
+
+	* main.c:
+	Fix a place where we were exiting without applying the exit-specs.
+
+	Wrap a long line.
+
+	* avr.c, fileio.c: avr.c: Update a comment.
+
+	fileio.c: Properly handle all the Intel Hex record types that I can
+	          find information about.
+
+2001-01-25  Brian S. Dean  <bsd@bdmicro.com>
+
+	* Usage, avr.h: Get rid of the Usage file.
+
+2001-01-24  Brian S. Dean  <bsd@bdmicro.com>
+
+	* Makefile, avr.c, avr.h, main.c, pindefs.h, ppi.c:
+	Move pin definitions to their own file.
+
+	First pass at providing feedback via the optionally connected leds.  I
+	don't actually have any of these attached to my programmer, so I can
+	only guess as whether this is toggling them on and off correctly.
+
+	Also, enable and disable the optional 74367 buffer.
+
+	* avr.h, main.c, ppi.c, ppi.h, avr.c:
+	Rearrange the pinout for the programmer to be a little more logical.
+	Provide hooks to support a buffered programmer, pin 6 is now used to
+	enable a buffer that can be used to isolate the target system from the
+	parallel port pins.  This is important when programming the target
+	in-system.
+
+	Totally change the way the pin definitions are defined.  Actually
+	set/clear pins based on the way more intuitive pin number, instead of
+	PPI data register, bit number combination.  A table of pin data is
+	used so that any hardware inversion done by the parallel port is
+	accounted for, what you set is actually what appears at the pin.
+	Retain the old method for handling Vcc, however, because the hold
+	method is much easier to use when setting / retrieving multiple pins
+	simultaneously.
+
+2001-01-22  Brian S. Dean  <bsd@bdmicro.com>
+
+	* Makefile: Don't gzip the man page.
+
+	* avrdude.1: .Nm macro fix.  Submitted by Joerg.
+
+	* main.c: Cosmetic, don't output a preceding linefeed for usage().
+
+	* Makefile, avr.c, avr.h, fileio.c, term.c:
+	Makefile : use gzip -f for man page installation so that we don't get
+	           prompted.
+
+	avr.c avr.h fileio.c term.c :
+
+	     Change the avrpart data structure so that the typedef AVRMEM is
+	     used as an index into an array for the sizes of the memory types
+	     and also for pointers to buffers that represent the chip data for
+	     that memory type.  This removes a lot of conditional code of the
+	     form:
+
+			switch (memtype) {
+				case AVR_FLASH :
+			 	...
+			}
+
+	     Also, re-code avr_read_byte() and avr_write_byte() to properly
+	     handle the flash memory type without having to tell them whether
+	     they should program the high byte or the low byte - figure that
+	     out from the address itself.  For flash memory type, these
+	     routines now take the actual byte address instead of the word
+	     address.  This _greatly_ simplifies many otherwise simple
+	     operations, such a reading or writing a range of memory, by not
+	     having to worry about whether the address starts on an odd byte
+	     or an even byte.
+
+2001-01-20  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avr.c, avr.h, fileio.c, fileio.h, main.c:
+	Return error codes instead of exiting, thus making sure that we exit
+	only via main() so that the exitspecs are properly applied.
+
+	When reading input data from a file, remember how many bytes were read
+	and write and verify only that many bytes.
+
+	Don't complain when an input file size is smaller than the memory size
+	we are programming.  This is normal.
+
+	* fileio.c:
+	Correct checksum calculation; failure to account for the value of the
+	record type was causing non-zero record types to be calculated
+	incorrectly.
+
+	* Makefile, main.c: Makefile : install the man page
+
+	main.c : drop the giant usage text now that we have a man page.
+
+	* avrdude.1:
+	Add initial man page graciously contributed by Joerg Wunsch.  Thanks
+	Joerg!
+
+2001-01-19  Brian S. Dean  <bsd@bdmicro.com>
+
+	* term.c:
+	Accept abbreviations for eeprom and flash for the dump and write
+	commands.
+
+	Fix small bug keeping 1 character command lines from being added to
+	the history.
+
+	* term.c:
+	Implement enough state in cmd_dump so that if it is called with no
+	arguments, it successively dumps the next chunk of data of the same
+	previously specified length.
+
+	* term.c, term.h, fileio.c, fileio.h, main.c, ppi.c, ppi.h:
+	* Makefile, avr.c, avr.h, avrprog.c:
+	The program was getting too large for a single file.  Split it up into
+	more modular pieces.
+
+	Also, accept command abbreviations as long as they are not ambiguous.
+
+	* avrprog.c:
+	Add ability to specify the state of the power and reset pins on
+	program exit.  Default to leaving the pins in the state they were when
+	we found them.
+
+	Contributed by: Joerg Wunsch
+
+2001-01-18  Brian S. Dean  <bsd@bdmicro.com>
+
+	* Makefile, avrprog.c:
+	Switch to using readline() for getting terminal input.  I can't seem
+	to get the history capabilities working yet, but even so, it does
+	better handling of the prompt and strips newlines for us, so it's
+	still a win.
+
+	Add a few new commands for terminal mode: help, sig, part, erase.
+	Display rudimentory help using the help command.
+
+	Add some function prototypes.
+
+	* Usage, avrprog.c:
+	Change -c (interactive command mode) to the more intuitive -t
+	(terminal mode).
+
+	Make binary format the default for output.
+
+	Update the parts table with corrections for old values and add some
+	new values.
+
+2001-01-15  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avrprog.c:
+	Automatically verify on-chip data with what we just programmed.
+
+	* avrprog.c, Makefile:
+	Prepare the Makefile for integration into the FreeBSD ports tree.
+
+	Fix a few "may be used uninitialized" bugs found by -Wall.
+
+2001-01-14  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avrprog.c: Free a buffer.
+
+	* avrprog.c:
+	Use a smarter programming algorithm - read the existing data byte
+	first and only write the new one if it is different.
+
+	Add -n option which is a test mode in which the chip is not actually
+	updated.  This option does not affect writes in interactive mode.
+
+	* avrprog.c: Add the "dump" and "write" interactive commands.
+
+	* avrprog.c:
+	Correctly produce and handle "end of record" for intel hex files.
+
+2001-01-13  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avrprog.c:
+	Re-enable writing to the chip.  I should probably should make this a
+	command-line selectable option so that I don't keep forgetting and
+	committing it with it disabled.
+
+	* avrprog.c:
+	Add a newline before exiting due to command line errors.  Perform a
+	bit more option compatibility testing between -c, -i, and -o.
+
+	* avrprog.c: Add input file format auto-detection support.
+
+	* Usage, avrprog.c: Say what the defaults are.
+
+	* avrprog-programmer.jpg, Usage, avrprog-schematic.jpg: New files.
+
+	* avrprog.c: Correct usage text.
+
+	* avrprog.c:
+	Parameterize a few additional items per chip.  Print out all per-chip
+	parameters on startup.  Use the per-chip parameters in the code
+	instead of hard-coded values for the 2313.
+
+	* avrprog.c: Fix filename assignment error.
+
+	Clean up debugging code a little, utilize fileio() instead of making
+	direct calls to b2ihex().
+
+	* avrprog.c: A lot of general code cleanup.
+
+	Re-work command line options to be more intuitive.
+
+	Support Intel Hex input and output file formats.  Provide hooks to
+	support Motorola S-Record as well.
+
+	Add a few more part-specific parameters to the avrpart structure.
+
+	Only write the flash or eeprom if the data to be written is not 0xff.
+
+2000-12-31  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avrprog.c: Update a comment.
+
+	* avrprog.c:
+	Provide the ability to tie additionally tie pins 6-9 of the parallel
+	port to Vcc in order to supply more current.
+
+	Fix a typo on the size of the S1200's Flash.
+
+	Bring RESET low when programming is completed.
+
+	* avrprog.c:
+	Correct pin connection comments.  Elaborate a bit on Vcc connection.
+
+	* avrprog.c:
+	Update after receiving some good feedback from Joerg Wunsch.  We
+	should now be able to program AT90S1200's.
+
+2000-12-30  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avrprog.c: Don't limit eeprom addresses.
+
+2000-12-20  Brian S. Dean  <bsd@bdmicro.com>
+
+	* Makefile, avrprog.c:
+	Add support for the 8515.  Make the addition for other devices easier.
+
+2000-08-27  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avrprog.c:
+	Clear all bits except AVR_RESET when finished reading or programming
+	the Atmel device.
+
+2000-08-07  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avrprog.c: update announcement message
+
+	* avrprog.c: Update announcement message.
+
+	* avrprog.c: Return the correct return code from 'main()'.
+
+	* avrprog.c:
+	Add ppi_pulse() function and fix ppi_toggle() to actully toggle
+	instead of pulse.
+
+	Make all abnormal returns after the parallel port has been opened go
+	through a single exit point at the bottom of 'main()'.
+
+2000-08-06  Brian S. Dean  <bsd@bdmicro.com>
+
+	* Makefile, avrprog.c: Makefile: add --pedantic compiler option
+
+	avrprog.c:
+
+		Add lots of comments, move getop() variable declarations to
+		the top of the program.
+
+		Add a typedef name to the AVR memory type and use it for
+		function declarations.
+
+		Add a usleep() delay in the sense loop to avoid becoming a cpu
+		hog.
+
+		Print out a version string so that folks know what version of
+		the software they are running.
+
+		Be sure and close the parallel device and the i/o file when
+		terminating abnormally.
+
+	* avrprog.c: Print out version information when invoked.
+
+	* Makefile, avrprog.c: Makefile: Add an install target.
+
+	avrprog.c:
+
+	  Add license.
+
+	  Document the header a bit better.
+
+	  Add capability to read out and display the device signature bytes.
+
+	  Add capability to power the device from the parallel port.
+
+	  Eliminate debug print facility.
+
+	  Provide 'avr_cmd()' function.
+
+	  When memory locations don't program, generate a newline so that the
+	  information is not overwritten and lost.
+
+	  Don't print out the message about needing to specify a file if the
+	  user is not requesting an operation that requires the file.
+
+2000-08-05  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avrprog.c: Pring usage when no arguments are supplied.
+
+	* Makefile, avrprog.c: Initial check-in
+
+	* Makefile, avrprog.c: New file.
+
diff --git a/ChangeLog-2002 b/ChangeLog-2002
new file mode 100644
index 00000000..c5dc1f70
--- /dev/null
+++ b/ChangeLog-2002
@@ -0,0 +1,237 @@
+2002-12-12  Brian S. Dean  <bsd@bdmicro.com>
+
+	* main.c: minor cleanup
+
+2002-12-07  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avrdude.1, main.c:
+	If the stk500 is being used, default to using the first serial port.
+
+2002-12-03  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avrdude.1: Mention STK500 support.
+
+2002-12-01  Brian S. Dean  <bsd@bdmicro.com>
+
+	* stk500.c: Remove unused code.
+
+	* CHANGELOG, stk500.c:
+	Document changes since the previous version in the CHANGELOG.
+
+	Cleanup stk500.c a bit.
+
+	* stk500.c: Fix cut and paste braino.
+
+	* avr.c, avrdude.conf.sample, main.c, pgm.h, stk500.c:
+	The STK500 can perform paged read/write operations even on standard
+	"non-paged" parts.  Take advantage of that and use the faster internal
+	routines of the STK500 for those parts as well.
+
+	* avr.c, avr.h, avrpart.h, main.c, pgm.c, pgm.h, stk500.c:
+	Optimize reading and writing for the STK500 programmer if the part
+	supports paged reads and writes.  This greatly decreases the
+	program/verify time from about 4.5 minutes down to about 10 seconds in
+	a 12K program size test case.
+
+	Print out the hardware and firmware version for the STK500 if verbose
+	is enabled.
+
+	* avrdude.conf.sample, avrpart.h, config_gram.y, lexer.l, pgm.h:
+	* ppi.c, ppi.h, stk500.c, stk500.h, stk500_private.h:
+	Add basic support for STK500.
+
+2002-11-30  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avrdude.conf.sample, config.c, config.h, config_gram.y, lexer.l:
+	* main.c, pgm.c, pgm.h, ppi.c, ppi.h, term.c, term.h, Makefile:
+	* avr.c, avr.h:
+	Seperate programmer operations out into a driver-like interface so
+	that programmers other than the direct parallel port connection can be
+	supported.
+
+2002-11-23  Brian S. Dean  <bsd@bdmicro.com>
+
+	* CHANGELOG, main.c, term.c:
+	term.c - when in interactive terminal mode and dumping memory using
+	         the 'dump <memtype>' command without any address information,
+	         and the end of memory is reached, wrap back around to zero on
+	         the next invocation.
+
+	CHANGELOG - describe changes
+
+	main.c - update version number
+
+	* main.c:
+	When getting ready to initiate communications with the AVR device,
+	first pull /RESET low for a short period of time before enabling the
+	buffer chip.  This sequence allows the AVR to be reset before the
+	buffer is enabled to avoid a short period of time where the AVR may be
+	driving the programming lines at the same time the programmer tries
+	to.  Of course, if a buffer is being used, then the /RESET line from
+	the programmer needs to be directly connected to the AVR /RESET line
+	and not via the buffer chip.
+
+2002-11-06  Brian S. Dean  <bsd@bdmicro.com>
+
+	* CHANGELOG: Update changelog.
+
+	* avr.c, avr.h, main.c: Fix -Y option.  Reported by Joerg Wunsch.
+
+2002-11-01  Brian S. Dean  <bsd@bdmicro.com>
+
+	* CHANGELOG, main.c: Version update and CHANGELOG entry.
+
+	* avr.c:
+	Be backward compatible with the 2-byte rewrite cycle counter which
+	appeared in version 2.1.0, but was changed to a 4 byte counter in
+	version 2.1.1.  Reminded by Joerg Wunsch.
+
+2002-10-29  Brian S. Dean  <bsd@bdmicro.com>
+
+	* CHANGELOG, avrdude.1, main.c:
+	Add '-V' (no verify) flag requested by Joerg Wunsch.  Update the man
+	page.
+
+2002-10-13  Brian S. Dean  <bsd@bdmicro.com>
+
+	* CHANGELOG, avrdude.1: Update man page and changelog.
+
+	* main.c: Update version number.
+
+2002-10-12  Brian S. Dean  <bsd@bdmicro.com>
+
+	* Makefile: Remove --pedantic and -g from the compiler options.
+
+2002-10-11  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avr.c, term.c:
+	Use a four byte value instead of a two byte value for the programming
+	cycle count stored at the end of EEPROM.  It seems as though Atmel was
+	greatly conservative in claiming a 1000 count reliability for the
+	FLASH.  I current have a part that has been reprogrammed 173330 times,
+	and counting.
+
+	Fix a compiler warning.
+
+	* avrdude.conf.sample:
+	Fix ATMega128 instruction encoding for reading the low and high fuse
+	bits.  Thanks to Joerg Wunsch for tripping over this.
+
+2002-08-01  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avr.c, avrdude.1, main.c:
+	Move erase-rewrite cycle increment to within the chip erase routine so
+	that it is tracked no matter where the erase was initiated: command
+	line mode or interactive mode, without code duplicaiton.
+
+	* CHANGELOG: Recent updates.
+
+	* avr.c: Eliminate unused variables.
+
+	* avr.c, avr.h, avrdude.1, fileio.c, main.c:
+	Implement a way of tracking how many erase-rewrite cycles a part has
+	undergone.  This utilizes the last two bytes of EEPROM to maintain a
+	counter that is incremented each time the part is erased.
+
+2002-07-27  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avr.c, main.c:
+	Fix a typo in a comment.  Display the size of memory being written.
+	Display the correct memory name in an error message (previously
+	hardcoded).
+
+2002-06-22  Brian S. Dean  <bsd@bdmicro.com>
+
+	* CHANGELOG, avrdude.conf.sample:
+	Add support for ATtiny15 - contributed by Asher Hoskins
+	<asher@crumbly.freeserve.co.uk>
+
+2002-04-23  Brian S. Dean  <bsd@bdmicro.com>
+
+	* CHANGELOG: Say what changed.
+
+2002-04-07  Brian S. Dean  <bsd@bdmicro.com>
+
+	* Makefile, avrdude.conf.sample:
+	Backup the config file to a timestamped name to keep from possibly
+	overwriting user-modified configs.
+
+	Add read/write instructions for all memory types for ATMEGA103,
+	ATMEGA128, ATMEGA16, and ATMEGA8.
+
+2002-04-05  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avrdude.conf.sample:
+	Add support for ATMEGA128; untested; requested by Jeff Gardner
+	<gardner@journey.com>.
+
+2002-02-15  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avrdude.conf.sample: Minor ordering.
+
+	* CHANGELOG, main.c: Update version numbers.
+
+2002-02-14  Brian S. Dean  <bsd@bdmicro.com>
+
+	* CHANGELOG: Summarize latest updates.
+
+	* avrdude.conf.sample, config_gram.y:
+	Make pwroff_after_write a yes/no field instead of a numeric.
+
+	* avrdude.conf.sample: Document the pwroff_after_write flag.
+
+	* avr.c: Enable the extra part verbosity when verbosity >= 3.
+
+	* avr.c, avr.h, avrdude.conf.sample, config_gram.y, lexer.l:
+	* main.c, term.c:
+	Fix error reporting by avr_write_byte().
+
+	Fix setting of status LEDs under various write-fail conditions.
+
+	Add a flag to indicate that a memory type requires the device to
+	possibly be powered off and back on after a write to it.  This is due
+	to a hardware problem on some Atmel devices, see:
+
+		http://www.atmel.com/atmel/acrobat/doc1280.pdf
+
+	Add greater verbosity to the part-display code when verbose>1 to
+	display avrprog's encoding of the defined programming instructions.
+	This is primarily for debugging purposes.
+
+
+	Part updates:
+
+	  * add the AT90S4414 part
+
+	  * add fuse and lock bit access instructions for the AT90S1200,
+	    AT90S4434, and AT90S8515.
+
+	  * add the pwroff_after_write flag to the fuse bits for the AT90S2333
+	    and AT90S4433 parts
+
+2002-02-09  Brian S. Dean  <bsd@bdmicro.com>
+
+	* avrdude.conf.sample:
+	Updates to the 2333 and 4433 parts, contributed by Joerg Wunsh.
+
+2002-01-18  Brian S. Dean  <bsd@bdmicro.com>
+
+	* CHANGELOG: Add changelog.
+
+2002-01-12  Brian S. Dean  <bsd@bdmicro.com>
+
+	* main.c: Add (c) to copyright.
+
+	* fileio.c, fileio.h, lexer.l, lists.c, lists.h, main.c:
+	* pindefs.h, ppi.c, ppi.h, term.c, term.h, avr.c, avr.h:
+	* config.c, config.h, config_gram.y:
+	Update version number.  Update copyright.
+
+	* avrdude.1: Update copyright and add description of "default".
+
+	Submitted by: Joerg Wunsch <j@uriah.heep.sax.de>
+
+	* avr.c, term.c:
+	Fix programming of write-only memories (such as lock bits on the
+	2313).
+
diff --git a/Makefile.am b/Makefile.am
index d29b6850..383795c1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -22,7 +22,8 @@
 #
 
 EXTRA_DIST   = \
-	CHANGELOG \
+	ChangeLog-2001 \
+	ChangeLog-2002 \
 	avrdude.1 \
 	avrdude.pdf \
 	avrdude.spec \
diff --git a/NEWS b/NEWS
index e69de29b..a7678576 100644
--- a/NEWS
+++ b/NEWS
@@ -0,0 +1,236 @@
+$Id$
+
+Approximate change log for AVRDUDE by version.
+
+(For more detailed changes, see the ChangeLog file.)
+
+----------------------------------------------------------------------
+
+Version 4.0.0
+
+  * Now support Linux - added by "Theodore A. Roth" <troth@openavr.org>
+
+  * Now support Windows - added by "E. Weddington" <eric@umginc.net>
+
+  * Use 'configure' scripts to tailor the code to the system avrdude
+    is getting ready to be compiled on - added by "Theodore A. Roth"
+    <troth@openavr.org>
+
+  * Motorola S-Record support - submitted by "Alexey V.Levdikov "
+    <tsar@kemford.com>
+
+  * Support parallel programming on the STK500.  Introduce 'pagel' and
+    'bs2' keywords to the config file for this purpose.
+
+  * Add support for the AT90S2343
+
+  * Add support for the ATmega169
+
+  * Add ability to specify system defaults within the config file
+    (default parallel port, default serial port).
+
+  * Specify the default programmer seperately from the programmer
+    definition.  This is now done in the config file using the
+    'default_programmer' keyword.
+
+  * Support a per-user config file (~/.avrduderc) so that one can
+    override system wide defaults if desired.
+
+  * Follow the datasheet more closely for several parts in the "retry"
+    code when entering programming mode fails initially.  Introduce
+    'retry_pulse' to the config file for this purpose.
+
+
+
+Version 3.1.0
+
+  * This change represents a name change only.  There is currently an
+    effort to port AVRPROG to other platforms including Linux and
+    Windows.  Since Atmel's programmer binary that's included within
+    their AVR Studio software is named AVRPROG.EXE on the Windows OS,
+    there is the chance for confusion if we keep calling this program
+    AVRPROG as well.  Up until now the name hasn't really been a
+    problem since there was no chance to confuse 'avrprog' on Unix
+    with Atmel's AVRPROG because Atmel's tools only run on Windows.
+    But with the Unix 'avrprog' possibly being ported to Windows, I
+    felt a name change was the best way to avoid problems.
+
+    So - from this point forward, my FreeBSD Unix program formerly
+    known as AVRPROG will subsequently be known as AVRDUDE (AVR
+    Downloader/UploaDEr).
+
+    This change also represents a time when the AVRDUDE sources move
+    from my own private repository to a public repository.  This will
+    give other developers a chance to port AVRDUDE to other platforms
+    and extend its functionality to support additional programming
+    hardware, etc.
+
+    So goodbye AVRPROG, welcome AVRDUDE!
+
+Version 3.0.0
+
+  * Rewrite parts of the code to make it easy to support other types
+    of programmers besides the directly connected parallel port
+    programmer (PPI).
+
+  * Add support for Atmel's STK500 programmer/development board.  The
+    STK500's "paged mode" read/write is supported which makes this
+    programmer very fast.  This is sorely needed on parts with large
+    memories such as the ATmega128.  My 12K test program burns in
+    about 5 seconds, add another 5 to read it back out for
+    verification.
+
+
+Version 2.1.5:
+
+  * When getting ready to initiate communications with the AVR device,
+    first pull /RESET low for a short period of time before enabling
+    the buffer chip.  This sequence allows the AVR to be reset before
+    the buffer is enabled to avoid a short period of time where the
+    AVR may be driving the programming lines at the same time the
+    programmer tries to.  Of course, if a buffer is being used, then
+    the /RESET line from the programmer needs to be directly connected
+    to the AVR /RESET line and not via the buffer chip.
+
+    Feature contributed by Rick C. Petty <rick@KIWI-Computer.com>.
+
+  * When in interactive terminal mode and dumping memory using the
+    'dump <memtype>' command without any address information, and the
+    end of memory is reached, wrap back around to zero on the next
+    invocation.
+
+
+Version 2.1.4:
+
+  * Fix -Y option.
+
+
+Version 2.1.3:
+
+  * Be backward compatible when reading 2-byte rewrite cycle counters
+    as written by avrprog version 2.1.0.  Version 2.1.1 changed over
+    to a 4-byte counter, which caused avrprog versions 2.1.1 and 2.1.2
+    to report a negative count for parts that were initialized using
+    version 2.1.0.  Thanks to Joerg Wunsch for noticing this.
+
+
+Version 2.1.2:
+
+  * Add '-V' option to disable automatic verify check with uploading
+    data.
+
+
+Version 2.1.1:
+
+  * Fix ATmega128 instruction sequences for reading fuse bits -
+    contributed by Joerg Wunsch.
+
+  * Modify erase-rewrite cycle counter code to use a 4 byte counter
+    instead of a two byte counter.
+
+
+Version 2.1.0:
+
+  * Implement a per-part erase-rewrite cycle counter; requires the use
+    of two bytes of EEPROM memory.
+
+
+Version 2.0.5:
+
+  * Support for ATtiny15 - contributed by Asher Hoskins
+
+
+Version 2.0.4:
+
+  * Config file fixes for various parts.
+
+
+Version 2.0.3:
+
+  * Work around problem programming fuse bits on parts like the
+    at90s4433 as described in the following errata:
+
+      http://www.atmel.com/atmel/acrobat/doc1280.pdf
+
+  * Add part definition for at90s4414, at90s4433.
+
+  * Add fuse/lock bit memory instructions for the at90s1200,
+    at90s2333, at90s4433 and at90s8515.
+
+  * Fix setting of programmer status LEDs under certain write-fail
+    conditions.
+
+
+Version 2.0.2 :
+
+  * Fix writing to read-only memories such as the lock bits of the
+    AT90S2313.
+
+  * Copyright updates.
+
+
+Version 2.0.1 :
+
+  * Use correct parallel port pins for VCC.
+
+  * Add programmer definition for Atmel's STK200.
+
+  * Add programmer definition for the AVR3 board.
+
+  * Fix address bit encoding for many parts.
+
+  * Allow the ``BUFF'' signal to be asserted by multiple pins of the
+    parallel port (like VCC) instead of just one.  The STK200 appears
+    to need this feature.
+
+
+Version 2.0.0 :
+
+  * Add support for programming fuse and lock bits if supported by the
+    part.
+
+  * Move instruction encoding into the config file.  Now any part can
+    be supported as long as it uses the same basic serial programming
+    instruction format.
+
+  * Add part definitions for the ATMega163 and ATMega8 devices.
+
+
+Version 1.4.3 :
+
+  * Mostly internal code cleanup.
+
+
+Version 1.4.2 :
+
+  * Fixes for ATMega paged memory support.
+
+  * Support for ATMega16 device.
+
+
+Version 1.4.1 :
+
+  * No functional changes, update to Copyrights only.
+
+
+Version 1.4.0 :
+
+  * Add part definitions to the config file.
+
+  * Add initial support for Atmel's ATMega paged memory parts.
+
+  * Config file documentation added.
+
+  * Add a definition for the Dontronics DT006 programmer.
+
+  * Fix Intel Hex support for addresses larger than 64k.
+
+
+Version 1.3.0 :
+
+  * Make programmer pin assignments configurable.
+
+
+Version 1.2.2 :
+
+  * Initial public release
diff --git a/README b/README
index e69de29b..ec04fb58 100644
--- a/README
+++ b/README
@@ -0,0 +1,6 @@
+See the documentation file for the details.
+
+The latest version of AVRDUDE is always available here:
+
+  http://savannah.nongnu.org/projects/avrdude
+