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

Note 65Org16 simulation module

This commit is contained in:
Mike Naberezny 2012-01-01 15:22:19 -08:00
parent a991a7862c
commit 96bbe8b7e8
2 changed files with 38 additions and 31 deletions

View File

@ -1,5 +1,6 @@
0.11-dev *Next release*
- Added a new 65Org16 MPU simulation written by Ed Spittles.
0.10 (2011-08-27)
@ -8,7 +9,7 @@
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.
- Removed use of defaultdict to fix compatibility with Python 2.4.
@ -30,29 +31,29 @@
- 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
- 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
- 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
- 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.
- 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.
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
@ -80,8 +81,8 @@
- 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.
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.
@ -109,7 +110,7 @@
- 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.
@ -131,19 +132,19 @@
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").
- 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.
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
- Fixed a bug where a CMP instruction could crash the simulator due to
an undefined variable.
- EhBASIC 2.09 now runs in the simulator!

View File

@ -7,23 +7,23 @@ microprocessors. It has the following goals:
written in the Python programming language for productivity, while
similar programs are written in C for performance.
- Enable simulations to be created for systems where it might have
otherwise not been practical, such as homebuilt computers.
- Enable simulations to be created for systems where it might have
otherwise not been practical, such as homebuilt computers.
- Rigorously unit test all of the components. While the tools provided
by Py65 may not always be perfect, their behavior is verified through
by Py65 may not always be perfect, their behavior is verified through
tests so unexpected results are minimized.
## Installation
Py65 packages are [available](http://pypi.python.org/pypi/py65) on the
Python Package Index (PyPI). You download them from there or you can
Py65 packages are [available](http://pypi.python.org/pypi/py65) on the
Python Package Index (PyPI). You download them from there or you can
use `easy_install` to automatically install or upgrade Py65:
$ easy_install -U py65
Alternatively, you can [download](http://github.com/mnaberez/py65/downloads)
a package from GitHub in `.tar.gz` or `.zip` format. After extracting the
Alternatively, you can [download](http://github.com/mnaberez/py65/downloads)
a package from GitHub in `.tar.gz` or `.zip` format. After extracting the
package, use the following command to install Py65:
$ python setup.py install
@ -42,6 +42,12 @@ The following devices are simulated at this time:
than others. This simulation is based on the W65C02S from the Western
Design Center (WDC).
- `mpu65Org16` simulates the 65Org16, a 6502-like microprocessor with a 16-bit
data bus and 32-bit address bus. This microprocessor is a project of the
[6502.org community](http://forum.6502.org/viewtopic.php?t=1824) and a
[Verilog core](https://github.com/BigEd/verilog-6502/wiki) for it has been
implemented.
## Monitor
Py65 includes a console-based machine language monitor (sometimes also called
@ -53,7 +59,7 @@ simulations that you build. Its features include:
- Ability to load, dump, and fill memory.
- Simple assemble and disassemble capability, including support for labels
- Simple assemble and disassemble capability, including support for labels
and labels with offsets.
## Documentation
@ -65,11 +71,11 @@ published to [http://py65.readthedocs.org/](http://py65.readthedocs.org/)
These people are responsible for Py65:
- [Mike Naberezny](http://github.com/mnaberez) is the original author of
- [Mike Naberezny](http://github.com/mnaberez) is the original author of
Py65 and is the primary maintainer.
- [Oscar Lindberg](http://github.com/offe) started the 65C02 simulation
module and contributed greatly to its implementation.
- [Ed Spittles](http://github.com/biged) helped with testing and provided
many useful issue reports and patches.
- [Oscar Lindberg](http://github.com/offe) started the 65C02 simulation
module and contributed greatly to its implementation.
- [Ed Spittles](http://github.com/biged) wrote the 65Org16 simulation module
and provided many useful issue reports and patches.