Version 7 (28-FEB-2006)
---------

- prog/: voltage now only needs to be known if programming or erasing the
  target
- sim/lang.u: simulation script can now also write to ROM
- sim/lang.y: reg[REGISTER] can now be used as a short-cut for reg[&REGISTER]
- sim/gpio.c: verified that the PRTxDMx change sequence does not cause
  undesirable transitions
- shared/disasm.[ch]:m8c_bytes: array of instruction lengths
- sim/m8c.c: "pc" is now a uint16_t variable and not a pointer, simplifying all
  sorts of calculations, at the price of slightly more complex accesses
- sim/m8c.c: inside the simulator, "ram" is no longer banked
- sim/m8c.c: "cycles" are now real clock cycles, not instructions
- sim/m8c.c: ADD SP,expr affected the flags
- sim/lang.y: the bit field operator can now also be applied to lvalues, but is
  no longer a general operator
- sim/lang.y: value for gpio_drive was incorrectly shifted
- sim/gpio.[ch]: port bits can now be driven resistive and Hi-Z
- sim/gpio.[ch]:gpio_drive_z: removed left-over "bit" argument
- sim/reg2simhdr.pl: now allows duplicate definitions (e.g., INT_CLR2)
- sim/{gpio,int}.[ch]: added interrupt support
- sim/m8c.c: MOV_REG_TO_A didn't "break"
- as/lang.l:yyerrorf: va_start had its arguments in the wrong order
- sim/lang.l: removed unused STRING token
- sim/: no longer uses CPP and is therefore suitable for interactive use
- sim/: register and field definitions now use a new sytax omitting the "#" in
  "#define"

Version 6 (23-FEB-2006)
---------

- as/: added unary >> operator that returns the number of trailing clear bits
- as/lang.l:yyerrorf: didn't initialize "ap", oops
- as/cpp.[ch]: moved to shared/
- prog/libprog.a: new home of all interactions with the programmer that are not
  part of the user interface
- shared/interact.[ch]: new home for all "verbose" and progress reporting items
- cleaned up library inclusion in all Makefiles
- shared/README: moved the cpp.[ch] license, too
- sim/: added a simulator (proof of concept only and certainly full of bugs)
- waspic/: reset also if restarting through start1
- prog/drv/waspic.c: reset target when closing
- prog/drv/watsp.c: reset target and disable output when closing

Version 5 (22-FEB-2006)
---------

- m8cprog: verified that READ_REG(REG_CPU_X) indeed reads CPU register X
- "make" now prints terse message (to obtain the full command text, set V=1)
- waspic/waspic.asm: the first vector now ends in 000 instead of 111 (which was
  incorrect, but didn't seem to have any effect)
- waspic/: added protective resistors to SDATA, SCLK, and XRES
- watsp/: new simple bit-banging programmer for the serial port
- m8cprog: terminal width is now determined at run-time
- m8cprog/vectors.h: moved chip IDs to chips.h
- m8cprog/chips.[ch]: moved to shared/
- das/tests/input: a reference to m8cdasm escaped the great renaming

Version 4 (20-FEB-2006)
---------

- renamed CY8C2 to M8C (package name, cy8c2prog, etc.)
- renamed m8cdasm to m8cdas
- m8cprog: added support for chips with banked Flash (CY8C24x94 and CY8C29xxx);
  UNTESTED !
- shared/file.h: increased sizes to 32 kB Flash
- m8cprog: write security data after reading or comparing
- m8cprog: the INITIALIZE_3 vector must set BDG_TR, not ILO_TR
- m8cprog: as an exception, if there are 128 blocks, CHECKUP_SETUP sets POINTER
  to 0 instead of 0x80
- prog/m8cprog.c: turn off progress bar if verbose > 1
- prog/ref/: tools and data for comparing the vectors against the official
  published reference AN2026A and AN2026B
- m8cas: cleaned up implementation of AREA and made list of attributes optional
- m8cas: added support for overlaid areas
- m8cas: code area is now called "text" and is pre-defined as (ROM, ABS, CON).
- as/tests/{blk,blkw}: updated to use the "text" area

Version 3 (18-FEB-2006)
---------

- prog/tty.[ch]: added functions to access individual lines of the serial port
- prog/: moved drivers to subdirectory prog/drv/
- proc/Makefile: introduced central driver list
- proc/cy8c2prog.c: option -d didn't take an argument, crashing cy8c2prog
- proc/prog.c:prog_vector: was completely broken, now is less so
- m8cas: added support for the AREA directive (with limitations)
- as/tests/{blk,blkw}: updated to use AREA
- m8cas: unary operators caused a segfault
- m8cas: unary - was implemented as ~
- m8cas: hexadecimal numbers in the XXh format were not handled properly

Version 2 (17-FEB-2006)
---------

- prog/cy8c2prog.c: programmer can now also be invoked without any operation,
  in which case it will only establish communication and retrieve the IDs
- prog/cy8c2prog.c: new erase device only option -e
- prog/cy8c2prog.c: new option -z to skip read-protected blocks when reading or
  comparing
- prog/cy8c2prog.c: now also retrieves the silicon revision (experimental)
- prog/cy8c2prog.c: restructured the code
- proc/README: documented that programmers with hard-coded vectors aren't
  supported
- Makefile: didn't stop on errors in subdirectories
- libfdr/: added red-black trees by James S. Plank
- as/: added an assembler (experimental and largely untested)
- dasm/tests/Common: regression tests now print the script name on failure

Version 1 (15-FEB-2006)
---------

- waspic: schematic uses transistor symbols with correct pin information,
  removed BC337.sym and pic16LF88.sym, and updated the READMEs
- waspic: added "project", which guides the operation of gsch2pcb
- prog/Makefile: moved common settings to top-level Common.make, and added
  -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wshadow
  -Werror to CFLAGS
- moved prog/file.[ch] to shared/
- shared/file.[ch]: added support for reading and writing ROM files
- shared/file.c: Intel HEX file records now output with \n, not \r\n, as record
  terminator
- shared/file.c: added full support for security data and cleaned up confusion
  with checksum data
- shared/file.[ch]: program and security data size now has byte granularity,
  and no automatic padding occurs
- cy8c2prog: files are now only padded to full blocks when writing
- cy8c2prog: added support for writing security data
- cy8c2prog: added detection of error codes returned by SSC when reading
- cy8c2prog: new option -i to write an Intel HEX file, changed the default to
  "ROM"
- cy8c2prog: default isn't as silent as README claimed; added option -q to make
  it so (i.e., to suppress progress bars)
- dasm/: added a disassembler
- improved the READMEs a little
- moved prog/TODO to the top level
- prog/vectors.h: some macro arguments lacked parentheses
- added CHANGES (forgot that one, oops)

Version 0 (14-FEB-2006)
---------

- Initial release
