0.14 (2012-11-30)

  - Assembling now detects syntax errors, overflows, and bad labels
    separately and shows specific error messages.

  - Fixed assembling 65C02 opcodes whose mnemonics have a digit
    such as "RMB3".

  - Reformatted source code to comply with PEP8.

  - Fixed a bug where the MPU status display would wrap unexpectedly
    on some terminals.

  - Added support for 65C02 opcode 0x89: BIT #.

  - Added support for 65C02 opcode 0x7C: JMP (abs,x).

  - Assembling now shows an Overflow Error if the statement won't
    fit at the top of memory.

  - Fixed a bug in the disassembler where instructions that wrap past
    the top of memory would not be displayed properly.

0.13 (2012-11-15)

  - Fixed a bug where negative numbers could be entered
    for addresses in the monitor.

0.12 (2012-02-16)

  - Fixed a bug that caused ``help cd`` to raise an exception
    in the monitor.

  - Fixed a bug in the 65C02 simulation where the opcode 0x7A
    was named "PHY" instead of "PLY", causing incorrect assembly
    and disassembly.  Thanks to Brian Cassidy for reporting it.

  - Fixed the cycle count of 0xD2 (CMP zero page indirect) in
    the 65C02 simulation.  Thanks to Brian Cassidy for reporting it.

  - Added "h" as a monitor shortcut for "help".

0.11 (2012-01-07)

  - Added a new 65Org16 MPU simulation written by Ed Spittles.

  - The monitor now accepts command line arguments.  See
    ``py65mon --help`` for usage.  Contributed by Ed Spittles.

  - The monitor's load command can now fetch URLs.

  - Python versions earlier than 2.6 are no longer supported.

0.10 (2011-08-27)

  - Fixed long-standing bugs in relative branch calculations in the
    assembler and disassembler.  Based on a patch by Ed Spittles.

0.9 (2011-03-27)

  - Fixed two monitor tests that were broken under Windows.  Thanks
    to Oscar Lindberg for reporting this.

  - Removed use of defaultdict to fix compatibility with Python 2.4.

  - Decimal mode bugs have been fixed.  Thanks to Ed Spittles who
    ported Bruce Clark's tests to find failures and then rewrote
    the decimal handling code.

0.8 (2010-03-08)

  - Fixed deprecation warnings on Python 2.6

  - We no longer bundle ez_setup to bootstrap setuptools installation.

  - Restoring the processor status register from interrupt now correctly
    set the BREAK and UNUSED flags to be high.  Thanks to Ed Spittles
    for reporting this.

  - Applied patch by Ed Spittles that fixes the behavior of the BREAK
    and UNUSED flags in the processor status register.  Closes #16.

  - Added ">" as a monitor shortcut for the fill command for
    consistency with VICE.

0.7 (2009-09-03)

  - When using the monitor, the nonblocking character input at
    $F004 should now work on the Microsoft Windows platform.

  - Fixed that relative branch calculations would not use the correct
    start address when assembling in the monitor.  Closes #10.

  - The processor status register ("p" or "flags") can now be changed
    in the monitor using the "registers" command with an argument of
    "p", such as "registers p=00".

  - MPU objects now return a two-line string as their __repr__ with
    the processor status register displayed as binary for readability.

  - The processor status register is now initialized to 0 on reset.
    Previously, its unused bit (bit 5) was set to 1 on reset.

  - Applied patch from Ed Spittles to change the CMP algorithm so that
    it no longer fails Rob Finch's test suite.  Closes #8.

  - Added a new interactive assembly mode to the monitor.  Entering the
    the assemble command with a statement such as "a c000 lda #0" works
    as before.  Entering "a c000" will start the interactive assembler
    at that address.  Entering "a" alone will start it at the current
    program counter.

  - Applied patch from Ed Spittles so that SBC now properly sets the
    Overflow (V) flag.  This fixes a failure in Rob Finch's test suite.
    Closes #6.

  - Applied patch from Ed Spittles so that SBC now properly sets the
    Carry (C) and Zero (Z) flags.  This fixes failures caught by Ed's
    own tests (see http://forum.6502.org/viewtopic.php?p=8854#8854).
    Closes #15.

  - A new "save" command has been added to the monitor that will save
    a range of memory to a binary file.

0.6 (2009-08-11)

  - Added monitor shortcut "a" for "assemble".

  - Fixed that ASL would not properly set the Z flag.  Closes #7.

  - Fixed that ADC would not properly set the Overflow (V) flag.  The
    overflow calculation that is now used originated from XGS: Apple
    IIGS Emulator (cputable.h).  Originally written and Copyright
    (C)1996 by Joshua M. Thompson.  Copyright (C) 2006 by Samuel A.
    Falvo II.  http://bitbucket.org/kc5tja/lib65816/src/tip/src/cputable.h
    Closes #3.

0.5 (2009-08-06)

  - Fixed signatures of getc/putc callbacks in monitor that were broken
    when the ObservableMemory interface changed in 0.3.  Closes #1.

  - Fixed that ROL would not properly set the Z flag.  Closes #2.

0.4 (2009-06-06)

  - Added ez_setup.py to bootstrap setuptools installation.

0.3 (2009-06-03)

  - Added shortcuts for monitor commands such as "m" for "memory".  These
    are mostly the same as the VICE monitor shortcuts.

  - The terminal width can now be changed in the monitor using the new
    "width" command.  Some commands, like "mem", will wrap to this width.

  - Fixed a bug where BRK would increment PC by 3 instead of 2.  Thanks
    to Oscar Lindberg.

  - Added a new 65C02 MPU simulation started by Oscar Lindberg.  It is
    now mostly complete.

  - Added a new "mpu" command to the monitor.  It will switch between the
    NMOS 6502 and CMOS 65C02 simulations.

  - A new "devices" module has been added to organize device simulations.

  - The mpu6502 and mpu65c02 devices have been reorganized internally to
    use Python decorators to build their lookup tables based on an
    idea by Oscar Lindberg.

  - A new "utils" module has been added with various utility functions.

  - The ObservableMemory interface has been changed for clarity.

  - Python 2.4 or later is now required.

0.2 (2008-11-09)

  - Added a new "disassemble" command to the monitor.  It can disassemble
    any range of memory ("disassemble c000:c010").  If labels have been
    defined, the disassembly will show them in the operands.

  - Added a new "assemble" command to the monitor.  It can assemble a
    single instruction at an address ("assemble c000 jsr $ffd2").
    Labels in the operands are also supported ("assemble c000 jsr charout").

  - Moved the character I/O area from $E000 to $F000 for compatibility with
    the EhBASIC binary saved from Michal Kowalski's Windows-based simulator.
    In a future version of Py65, the I/O area will be configurable.

  - When running a program in the monitor, a read to $F004 will now do a
    non-blocking read from STDIN.  If no character is available, a null
    byte ($00) will be returned.

  - Fixed a bug where a CMP instruction could crash the simulator due to
    an undefined variable.

  - EhBASIC 2.09 now runs in the simulator!

  - Documented all remaining monitor commands.  In the monitor, use the
    command "help command" for help on any command.

0.1 (2008-11-21)

  - First release.
