1
0
mirror of https://github.com/mnaberez/py65.git synced 2024-06-01 03:41:31 +00:00

Unindent to fix GitHub rendering

This commit is contained in:
Mike Naberezny 2021-12-27 14:17:01 -08:00
parent 202d5913a5
commit 27230286a3

View File

@ -1,348 +1,348 @@
2.0.0.dev0 (Next Release) 2.0.0.dev0 (Next Release)
------------------------- -------------------------
- Fixed a bug with character input that would cause characters to be - Fixed a bug with character input that would cause characters to be
dropped when pasting in larger amounts of text. This makes it possible dropped when pasting in larger amounts of text. This makes it possible
to paste programs into EhBASIC and Taliforth. Patch by SamCoVT. to paste programs into EhBASIC and Taliforth. Patch by SamCoVT.
- Support for some older Python versions has been dropped. On Python 3, - Support for some older Python versions has been dropped. On Python 3,
Py65 now requires Python 3.4 or later. On Python 2, Py65 now requires Py65 now requires Python 3.4 or later. On Python 2, Py65 now requires
Python 2.7. Python 2.7.
- added ``irq()`` and ``nmi()`` methods to the ``MPU`` class, so that - Added ``irq()`` and ``nmi()`` methods to the ``MPU`` class, so that
interrupts can be simulated. Patch by Irmen de Jong. interrupts can be simulated. Patch by Irmen de Jong.
1.1.0 (2018-07-01) 1.1.0 (2018-07-01)
------------------ ------------------
- The ``Monitor`` class now allows the default memory to be supplied in - The ``Monitor`` class now allows the default memory to be supplied in
the constructor. Patch by Irmen de Jong. the constructor. Patch by Irmen de Jong.
- Fixed a bug where setting the MPU via ``py65mon`` command line arguments - Fixed a bug where setting the MPU via ``py65mon`` command line arguments
would have no effect. Reported by Michael A. Morris, patch by Ed Spittles. would have no effect. Reported by Michael A. Morris, patch by Ed Spittles.
- The ``itoa()`` function in ``conversions.py`` now raises an error when an - The ``itoa()`` function in ``conversions.py`` now raises an error when an
unsupported base is given. Patch by Scot W. Stevenson. unsupported base is given. Patch by Scot W. Stevenson.
- The unused hexdump loader utility has been removed. - The unused hexdump loader utility has been removed.
1.0.0 (2017-05-11) 1.0.0 (2017-05-11)
------------------ ------------------
- Fixed a bug where the ordering of ``py65mon`` command line arguments - Fixed a bug where the ordering of ``py65mon`` command line arguments
produced different results. Arguments can now be specified in any produced different results. Arguments can now be specified in any
order. Patch by Mario Keller. order. Patch by Mario Keller.
- Added new ``--input`` and ``--output`` arguments to ``py65mon`` that - Added new ``--input`` and ``--output`` arguments to ``py65mon`` that
allow the addresses of the ``getc`` and ``putc`` handlers to be allow the addresses of the ``getc`` and ``putc`` handlers to be
changed. Patch by Mario Keller. changed. Patch by Mario Keller.
- Fixed a 65C02 bug where the TSB and TRB instructions did not set - Fixed a 65C02 bug where the TSB and TRB instructions did not set
the Z flag correctly. Thanks to Kris Kennaway for reporting it. the Z flag correctly. Thanks to Kris Kennaway for reporting it.
0.24 (2015-03-31) 0.24 (2015-03-31)
----------------- -----------------
- Released as a universal wheel. - Released as a universal wheel.
0.23 (2015-02-10) 0.23 (2015-02-10)
----------------- -----------------
- Added a workaround to $F001 output to catch encoding errors and - Added a workaround to $F001 output to catch encoding errors and
display a "?" instead of crashing. This condition can occur if display a "?" instead of crashing. This condition can occur if
the 6502 program sends bytes to $F001 that aren't compatible with the 6502 program sends bytes to $F001 that aren't compatible with
the terminal's character encoding. the terminal's character encoding.
0.22 (2015-02-09) 0.22 (2015-02-09)
----------------- -----------------
- Fixed a bug where ``py65mon --rom`` would raise an exception - Fixed a bug where ``py65mon --rom`` would raise an exception
on Python 3. on Python 3.
0.21 (2015-02-09) 0.21 (2015-02-09)
----------------- -----------------
- Added support for breakpoints in the monitor. Contributed by - Added support for breakpoints in the monitor. Contributed by
Alessandro Gatti. Alessandro Gatti.
- ASCII literals are now supported by the assembler. The statement - ASCII literals are now supported by the assembler. The statement
"LDA #'A'" is equivalent to "LDA #$41". "LDA #'A'" is equivalent to "LDA #$41".
- Fixed console input when run under Python 3 on Windows. Closes #27. - Fixed console input when run under Python 3 on Windows. Closes #27.
0.20 (2014-05-08) 0.20 (2014-05-08)
----------------- -----------------
- Page wrapping for indexed indirect (X) operations on 65C02 has been - Page wrapping for indexed indirect (X) operations on 65C02 has been
restored. This reverts the change introduced in 0.18. We now believe restored. This reverts the change introduced in 0.18. We now believe
that this mode works the same on the 65C02 as it does on the 6502. that this mode works the same on the 65C02 as it does on the 6502.
0.19 (2014-03-12) 0.19 (2014-03-12)
----------------- -----------------
- Fixed 65C02 opcode $D2: CMP Zero Page, Indirect. - Fixed 65C02 opcode $D2: CMP Zero Page, Indirect.
- Blocking character input at $F005 has been removed. The I/O area - Blocking character input at $F005 has been removed. The I/O area
was designed to be compatible with Michal Kowalski's simulator, was designed to be compatible with Michal Kowalski's simulator,
and it uses this address for another purpose. Examples that depended and it uses this address for another purpose. Examples that depended
on $F005 have been changed to use $F004. on $F005 have been changed to use $F004.
0.18 (2014-01-30) 0.18 (2014-01-30)
----------------- -----------------
- Fixed a bug in RTS where popping $FFFF off the stack would cause - Fixed a bug in RTS where popping $FFFF off the stack would cause
the program counter to overflow to $10000. It now wraps around 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. 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 - 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. decimal flag is unaffected on BRK. On 65C02, it is always cleared.
- Assembling now tolerates extra whitespace between opcode and operand. - Assembling now tolerates extra whitespace between opcode and operand.
- Removed page wrap bug from JMP indirect on 65C02. - Removed page wrap bug from JMP indirect on 65C02.
- Removed page wrap bug from indexed indirect (X) operations on 65C02. - Removed page wrap bug from indexed indirect (X) operations on 65C02.
0.17 (2013-10-26) 0.17 (2013-10-26)
----------------- -----------------
- Added support for Python 3.2 and 3.3 based on work by David Beazley. - Added support for Python 3.2 and 3.3 based on work by David Beazley.
0.16 (2013-04-03) 0.16 (2013-04-03)
----------------- -----------------
- Fixed a bug in the monitor that caused loading from the command - Fixed a bug in the monitor that caused loading from the command
line with "--rom" to crash. line with "--rom" to crash.
0.15 (2013-01-06) 0.15 (2013-01-06)
----------------- -----------------
- Disassembling can now wrap around memory if the start address - Disassembling can now wrap around memory if the start address
given is greater than the end address. given is greater than the end address.
- Fixed the disassembler to accept a range of "start:end" instead of - Fixed the disassembler to accept a range of "start:end" instead of
"start:end+1" for consistency with the other commands. "start:end+1" for consistency with the other commands.
0.14 (2012-11-30) 0.14 (2012-11-30)
----------------- -----------------
- Assembling now detects syntax errors, overflows, and bad labels - Assembling now detects syntax errors, overflows, and bad labels
separately and shows specific error messages. separately and shows specific error messages.
- Fixed assembling 65C02 opcodes whose mnemonics have a digit - Fixed assembling 65C02 opcodes whose mnemonics have a digit
such as "RMB3". such as "RMB3".
- Reformatted source code to comply with PEP8. - Reformatted source code to comply with PEP8.
- Fixed a bug where the MPU status display would wrap unexpectedly - Fixed a bug where the MPU status display would wrap unexpectedly
on some terminals. on some terminals.
- Added support for 65C02 opcode 0x89: BIT #. - Added support for 65C02 opcode 0x89: BIT #.
- Added support for 65C02 opcode 0x7C: JMP (abs,x). - Added support for 65C02 opcode 0x7C: JMP (abs,x).
- Assembling now shows an Overflow Error if the statement won't - Assembling now shows an Overflow Error if the statement won't
fit at the top of memory. fit at the top of memory.
- Fixed a bug in the disassembler where instructions that wrap past - Fixed a bug in the disassembler where instructions that wrap past
the top of memory would not be displayed properly. the top of memory would not be displayed properly.
0.13 (2012-11-15) 0.13 (2012-11-15)
----------------- -----------------
- Fixed a bug where negative numbers could be entered - Fixed a bug where negative numbers could be entered
for addresses in the monitor. for addresses in the monitor.
0.12 (2012-02-16) 0.12 (2012-02-16)
----------------- -----------------
- Fixed a bug that caused ``help cd`` to raise an exception - Fixed a bug that caused ``help cd`` to raise an exception
in the monitor. in the monitor.
- Fixed a bug in the 65C02 simulation where the opcode 0x7A - Fixed a bug in the 65C02 simulation where the opcode 0x7A
was named "PHY" instead of "PLY", causing incorrect assembly was named "PHY" instead of "PLY", causing incorrect assembly
and disassembly. Thanks to Brian Cassidy for reporting it. and disassembly. Thanks to Brian Cassidy for reporting it.
- Fixed the cycle count of 0xD2 (CMP zero page indirect) in - Fixed the cycle count of 0xD2 (CMP zero page indirect) in
the 65C02 simulation. Thanks to Brian Cassidy for reporting it. the 65C02 simulation. Thanks to Brian Cassidy for reporting it.
- Added "h" as a monitor shortcut for "help". - Added "h" as a monitor shortcut for "help".
0.11 (2012-01-07) 0.11 (2012-01-07)
----------------- -----------------
- Added a new 65Org16 MPU simulation written by Ed Spittles. - Added a new 65Org16 MPU simulation written by Ed Spittles.
- The monitor now accepts command line arguments. See - The monitor now accepts command line arguments. See
``py65mon --help`` for usage. Contributed by Ed Spittles. ``py65mon --help`` for usage. Contributed by Ed Spittles.
- The monitor's load command can now fetch URLs. - The monitor's load command can now fetch URLs.
- Python versions earlier than 2.6 are no longer supported. - Python versions earlier than 2.6 are no longer supported.
0.10 (2011-08-27) 0.10 (2011-08-27)
----------------- -----------------
- Fixed long-standing bugs in relative branch calculations in the - Fixed long-standing bugs in relative branch calculations in the
assembler and disassembler. Based on a patch by Ed Spittles. assembler and disassembler. Based on a patch by Ed Spittles.
- Zero page operations now have the correct page wrap around. - Zero page operations now have the correct page wrap around.
Patch by Martti Kühne. Patch by Martti Kühne.
0.9 (2011-03-27) 0.9 (2011-03-27)
---------------- ----------------
- Fixed two monitor tests that were broken under Windows. Thanks - Fixed two monitor tests that were broken under Windows. Thanks
to Oscar Lindberg for reporting this. to Oscar Lindberg for reporting this.
- Removed use of defaultdict to fix compatibility with Python 2.4. - Removed use of defaultdict to fix compatibility with Python 2.4.
- Decimal mode bugs have been fixed. Thanks to Ed Spittles who - Decimal mode bugs have been fixed. Thanks to Ed Spittles who
ported Bruce Clark's tests to find failures and then rewrote ported Bruce Clark's tests to find failures and then rewrote
the decimal handling code. the decimal handling code.
0.8 (2010-03-08) 0.8 (2010-03-08)
---------------- ----------------
- Fixed deprecation warnings on Python 2.6 - Fixed deprecation warnings on Python 2.6
- We no longer bundle ez_setup to bootstrap setuptools installation. - We no longer bundle ez_setup to bootstrap setuptools installation.
- Restoring the processor status register from interrupt now correctly - Restoring the processor status register from interrupt now correctly
set the BREAK and UNUSED flags to be high. Thanks to Ed Spittles set the BREAK and UNUSED flags to be high. Thanks to Ed Spittles
for reporting this. for reporting this.
- Applied patch by Ed Spittles that fixes the behavior of the BREAK - Applied patch by Ed Spittles that fixes the behavior of the BREAK
and UNUSED flags in the processor status register. Closes #16. and UNUSED flags in the processor status register. Closes #16.
- Added ">" as a monitor shortcut for the fill command for - Added ">" as a monitor shortcut for the fill command for
consistency with VICE. consistency with VICE.
0.7 (2009-09-03) 0.7 (2009-09-03)
---------------- ----------------
- When using the monitor, the nonblocking character input at - When using the monitor, the nonblocking character input at
$F004 should now work on the Microsoft Windows platform. $F004 should now work on the Microsoft Windows platform.
- Fixed that relative branch calculations would not use the correct - Fixed that relative branch calculations would not use the correct
start address when assembling in the monitor. Closes #10. start address when assembling in the monitor. Closes #10.
- The processor status register ("p" or "flags") can now be changed - The processor status register ("p" or "flags") can now be changed
in the monitor using the "registers" command with an argument of in the monitor using the "registers" command with an argument of
"p", such as "registers p=00". "p", such as "registers p=00".
- MPU objects now return a two-line string as their __repr__ with - 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 displayed as binary for readability.
- The processor status register is now initialized to 0 on reset. - The processor status register is now initialized to 0 on reset.
Previously, its unused bit (bit 5) was set to 1 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 - Applied patch from Ed Spittles to change the CMP algorithm so that
it no longer fails Rob Finch's test suite. Closes #8. it no longer fails Rob Finch's test suite. Closes #8.
- Added a new interactive assembly mode to the monitor. Entering the - Added a new interactive assembly mode to the monitor. Entering the
the assemble command with a statement such as "a c000 lda #0" works the assemble command with a statement such as "a c000 lda #0" works
as before. Entering "a c000" will start the interactive assembler as before. Entering "a c000" will start the interactive assembler
at that address. Entering "a" alone will start it at the current at that address. Entering "a" alone will start it at the current
program counter. program counter.
- Applied patch from Ed Spittles so that SBC now properly sets the - 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. Overflow (V) flag. This fixes a failure in Rob Finch's test suite.
Closes #6. Closes #6.
- Applied patch from Ed Spittles so that SBC now properly sets the - 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 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). own tests (see http://forum.6502.org/viewtopic.php?p=8854#8854).
Closes #15. Closes #15.
- A new "save" command has been added to the monitor that will save - A new "save" command has been added to the monitor that will save
a range of memory to a binary file. a range of memory to a binary file.
0.6 (2009-08-11) 0.6 (2009-08-11)
---------------- ----------------
- Added monitor shortcut "a" for "assemble". - Added monitor shortcut "a" for "assemble".
- Fixed that ASL would not properly set the Z flag. Closes #7. - Fixed that ASL would not properly set the Z flag. Closes #7.
- Fixed that ADC would not properly set the Overflow (V) flag. The - Fixed that ADC would not properly set the Overflow (V) flag. The
overflow calculation that is now used originated from XGS: Apple overflow calculation that is now used originated from XGS: Apple
IIGS Emulator (cputable.h). Originally written and Copyright IIGS Emulator (cputable.h). Originally written and Copyright
(C)1996 by Joshua M. Thompson. Copyright (C) 2006 by Samuel A. (C)1996 by Joshua M. Thompson. Copyright (C) 2006 by Samuel A.
Falvo II. http://bitbucket.org/kc5tja/lib65816/src/tip/src/cputable.h Falvo II. http://bitbucket.org/kc5tja/lib65816/src/tip/src/cputable.h
Closes #3. Closes #3.
0.5 (2009-08-06) 0.5 (2009-08-06)
---------------- ----------------
- Fixed signatures of getc/putc callbacks in monitor that were broken - Fixed signatures of getc/putc callbacks in monitor that were broken
when the ObservableMemory interface changed in 0.3. Closes #1. when the ObservableMemory interface changed in 0.3. Closes #1.
- Fixed that ROL would not properly set the Z flag. Closes #2. - Fixed that ROL would not properly set the Z flag. Closes #2.
0.4 (2009-06-06) 0.4 (2009-06-06)
---------------- ----------------
- Added ez_setup.py to bootstrap setuptools installation. - Added ez_setup.py to bootstrap setuptools installation.
0.3 (2009-06-03) 0.3 (2009-06-03)
---------------- ----------------
- Added shortcuts for monitor commands such as "m" for "memory". These - Added shortcuts for monitor commands such as "m" for "memory". These
are mostly the same as the VICE monitor shortcuts. are mostly the same as the VICE monitor shortcuts.
- The terminal width can now be changed in the monitor using the new - The terminal width can now be changed in the monitor using the new
"width" command. Some commands, like "mem", will wrap to this width. "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 - Fixed a bug where BRK would increment PC by 3 instead of 2. Thanks
to Oscar Lindberg. to Oscar Lindberg.
- Added a new 65C02 MPU simulation started by Oscar Lindberg. It is - Added a new 65C02 MPU simulation started by Oscar Lindberg. It is
now mostly complete. now mostly complete.
- Added a new "mpu" command to the monitor. It will switch between the - Added a new "mpu" command to the monitor. It will switch between the
NMOS 6502 and CMOS 65C02 simulations. NMOS 6502 and CMOS 65C02 simulations.
- A new "devices" module has been added to organize device simulations. - A new "devices" module has been added to organize device simulations.
- The mpu6502 and mpu65c02 devices have been reorganized internally to - The mpu6502 and mpu65c02 devices have been reorganized internally to
use Python decorators to build their lookup tables based on an use Python decorators to build their lookup tables based on an
idea by Oscar Lindberg. idea by Oscar Lindberg.
- A new "utils" module has been added with various utility functions. - A new "utils" module has been added with various utility functions.
- The ObservableMemory interface has been changed for clarity. - The ObservableMemory interface has been changed for clarity.
- Python 2.4 or later is now required. - Python 2.4 or later is now required.
0.2 (2008-11-09) 0.2 (2008-11-09)
---------------- ----------------
- Added a new "disassemble" command to the monitor. It can disassemble - Added a new "disassemble" command to the monitor. It can disassemble
any range of memory ("disassemble c000:c010"). If labels have been any range of memory ("disassemble c000:c010"). If labels have been
defined, the disassembly will show them in the operands. defined, the disassembly will show them in the operands.
- Added a new "assemble" command to the monitor. It can assemble a - Added a new "assemble" command to the monitor. It can assemble a
single instruction at an address ("assemble c000 jsr $ffd2"). single instruction at an address ("assemble c000 jsr $ffd2").
Labels in the operands are also supported ("assemble c000 jsr charout"). Labels in the operands are also supported ("assemble c000 jsr charout").
- Moved the character I/O area from $E000 to $F000 for compatibility with - Moved the character I/O area from $E000 to $F000 for compatibility with
the EhBASIC binary saved from Michal Kowalski's Windows-based simulator. the EhBASIC binary saved from Michal Kowalski's Windows-based simulator.
In a future version of Py65, the I/O area will be configurable. 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 - 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 non-blocking read from STDIN. If no character is available, a null
byte ($00) will be returned. byte ($00) will be returned.
- Fixed a bug where a CMP instruction could crash the simulator due to - Fixed a bug where a CMP instruction could crash the simulator due to
an undefined variable. an undefined variable.
- EhBASIC 2.09 now runs in the simulator! - EhBASIC 2.09 now runs in the simulator!
- Documented all remaining monitor commands. In the monitor, use the - Documented all remaining monitor commands. In the monitor, use the
command "help command" for help on any command. command "help command" for help on any command.
0.1 (2008-11-21) 0.1 (2008-11-21)
---------------- ----------------
- First release. - First release.