py65/CHANGES.txt

249 lines
8.5 KiB
Plaintext

0.19-dev (Next Release)
- Blocking character input at $F005 has been removed. The I/O area
was designed to be compatible with Michal Kowalski's simulator,
and it uses this address for another purpose. Examples that depended
on $F005 have been changed to use $F004.
0.18 (2014-01-30)
- Fixed a bug in RTS where popping $FFFF off the stack would cause
the program counter to overflow to $10000. It now wraps around
to $0000 as it should. Thanks to Gábor Lénárt for reporting it.
- Fixed BRK on 65C02 so it clears the decimal flag. On NMOS 6502, the
decimal flag is unaffected on BRK. On 65C02, it is always cleared.
- Assembling now tolerates extra whitespace between opcode and operand.
- Removed page wrap bug from JMP indirect on 65C02.
- Removed page wrap bug from indexed indirect (X) operations on 65C02.
0.17 (2013-10-26)
- Added support for Python 3.2 and 3.3 based on work by David Beazley.
0.16 (2013-04-03)
- Fixed a bug in the monitor that caused loading from the command
line with "--rom" to crash.
0.15 (2013-01-06)
- Disassembling can now wrap around memory if the start address
given is greater than the end address.
- Fixed the disassembler to accept a range of "start:end" instead of
"start:end+1" for consistency with the other commands.
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.
- Zero page operations now have the correct page wrap around.
Patch by Martti Kühne.
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.