1
0
mirror of https://github.com/mnaberez/py65.git synced 2024-07-03 20:29:32 +00:00
py65/README.md

79 lines
2.9 KiB
Markdown
Raw Normal View History

2009-06-03 23:01:06 +00:00
# Py65
2009-09-04 05:36:02 +00:00
Py65 provides tools for simulating hardware based on 6502-like
microprocessors. It has the following goals:
2009-06-03 23:01:06 +00:00
- Focus on ease of use and modularity rather than performance. Py65 is
written in the Python programming language for productivity, while
similar programs are written in C for performance.
2012-01-01 23:22:19 +00:00
- Enable simulations to be created for systems where it might have
otherwise not been practical, such as homebuilt computers.
2009-06-03 23:01:06 +00:00
- Rigorously unit test all of the components. While the tools provided
2012-01-01 23:22:19 +00:00
by Py65 may not always be perfect, their behavior is verified through
2009-06-03 23:01:06 +00:00
tests so unexpected results are minimized.
2012-01-01 23:22:19 +00:00
2009-06-03 23:01:06 +00:00
## Installation
2012-01-01 23:22:19 +00:00
Py65 packages are [available](http://pypi.python.org/pypi/py65) on the
Python Package Index (PyPI). You download them from there or you can
2009-06-03 23:01:06 +00:00
use `easy_install` to automatically install or upgrade Py65:
$ easy_install -U py65
## Devices
The following devices are simulated at this time:
2009-09-04 05:36:02 +00:00
- `mpu6502` simulates the original NMOS 6502 microprocessor from MOS
2009-06-03 23:01:06 +00:00
Technology, later known as Commodore Semiconductor Group (CSG). At this
time, all of the documented opcodes are supported. Support for the
illegal opcodes is planned for the future.
- `mpu65c02` simulates a generic CMOS 65C02 microprocessor. There were
several 65C02 versions from various manufacturers, some with more opcodes
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
2012-01-01 23:22:19 +00:00
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.
2009-06-03 23:01:06 +00:00
## Monitor
Py65 includes a console-based machine language monitor (sometimes also called
a debugger). This program, `py65mon`, allows you to interact with the
simulations that you build. Its features include:
- Commands that are largely compatible with those used in the monitor of
the popular VICE emulator for Commodore computers.
- Ability to load, dump, and fill memory.
2012-01-01 23:22:19 +00:00
- Simple assemble and disassemble capability, including support for labels
2009-06-03 23:01:06 +00:00
and labels with offsets.
## Documentation
Py65 documentation is written using [Sphinx](http://sphinx.pocoo.org/) and is
2011-03-27 18:28:43 +00:00
published to [http://py65.readthedocs.org/](http://py65.readthedocs.org/)
2009-06-03 23:01:06 +00:00
## Contributors
These people are responsible for Py65:
- [Mike Naberezny](https://github.com/mnaberez) is the original author of
2009-06-03 23:01:06 +00:00
Py65 and is the primary maintainer.
2009-08-10 21:08:34 +00:00
- [Oscar Lindberg](https://github.com/offe) started the 65C02 simulation
2012-01-01 23:22:19 +00:00
module and contributed greatly to its implementation.
- [Ed Spittles](https://github.com/biged) wrote the 65Org16 simulation module
2012-01-01 23:22:19 +00:00
and provided many useful issue reports and patches.
- [David Beazley](https://github.com/dabeaz) did the initial port of Py65 to
Python 3.