All Projects → mnaberez → Py65

mnaberez / Py65

Licence: bsd-3-clause
Emulate 6502-based microcomputer systems in Python

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Py65

Gearnes
NES / Famicom emulator for iOS, Mac, Raspberry Pi, Windows, Linux and RetroArch.
Stars: ✭ 23 (-85.8%)
Mutual labels:  emulator, 6502
mos6502
MOS 6502 emulator written in Rust
Stars: ✭ 25 (-84.57%)
Mutual labels:  emulator, 6502
champ
A 65C02 profiler
Stars: ✭ 17 (-89.51%)
Mutual labels:  emulator, 6502
js-nes-emulator
NES emulator in javascript.
Stars: ✭ 12 (-92.59%)
Mutual labels:  emulator, 6502
Clk
A latency-hating emulator of 8- and 16-bit platforms: the Acorn Electron, Amstrad CPC, Apple II/II+/IIe and early Macintosh, Atari 2600 and ST, ColecoVision, Commodore Vic-20, MSX 1, Oric 1/Atmos, Sega Master System and Sinclair ZX80/81.
Stars: ✭ 476 (+193.83%)
Mutual labels:  6502, emulator
Thistle
6502 based architecture for OpenComputers
Stars: ✭ 26 (-83.95%)
Mutual labels:  emulator, 6502
retro-computing
🤓🕹💾 This hobby project contains software implementations of old microprocessors and complete computer systems. I'm very interested in retrocomputing and this is how I learn about the inner workings of these old, classic and amazing computers and game consoles.
Stars: ✭ 15 (-90.74%)
Mutual labels:  emulator, 6502
Mednes
A cycle-accurate, cross-platform NES emulator written in C++
Stars: ✭ 189 (+16.67%)
Mutual labels:  6502, emulator
Pcjs.v1
PCjs Machines 1.0 (archived)
Stars: ✭ 468 (+188.89%)
Mutual labels:  6502, emulator
Anese
Another NES Emulator - written for fun & learning - first implementation of wideNES
Stars: ✭ 323 (+99.38%)
Mutual labels:  6502, emulator
Nesicide
Integrated Development Environment for the 8-bit Nintendo Entertainment System
Stars: ✭ 244 (+50.62%)
Mutual labels:  6502, emulator
Embeddednes
A portable NES simulator for embedded processors
Stars: ✭ 26 (-83.95%)
Mutual labels:  6502, emulator
X6502
Yet another 6502 emulator that one day dreams of being an Atari 2600.
Stars: ✭ 220 (+35.8%)
Mutual labels:  6502, emulator
6502-emulator
An Understandable 6502 Emulator
Stars: ✭ 26 (-83.95%)
Mutual labels:  emulator, 6502
Punes
Nintendo Entertaiment System emulator and NSF/NSFe Music Player (Linux, FreeBSD, OpenBSD and Windows)
Stars: ✭ 217 (+33.95%)
Mutual labels:  6502, emulator
go6502
6502 CPU emulator, assembler and disassembler written in Go
Stars: ✭ 31 (-80.86%)
Mutual labels:  emulator, 6502
Nes
A Javascript NES Emulator
Stars: ✭ 168 (+3.7%)
Mutual labels:  6502, emulator
Pcjs
The original IBM PC and other machine emulations in JavaScript
Stars: ✭ 171 (+5.56%)
Mutual labels:  6502, emulator
Jsbeeb
Javascript BBC micro emulator
Stars: ✭ 261 (+61.11%)
Mutual labels:  6502, emulator
Jsnes
A JavaScript NES emulator.
Stars: ✭ 5,354 (+3204.94%)
Mutual labels:  6502, emulator

Py65

Py65 provides tools for simulating hardware based on 6502-like microprocessors. It has the following goals:

  • 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.

  • 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 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 use pip to automatically install or upgrade Py65::

$ pip install -U py65

Devices

The following devices are simulated at this time:

  • mpu6502 simulates the original NMOS 6502 microprocessor from MOS 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 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 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.

  • Simple assemble and disassemble capability, including support for labels and labels with offsets.

Documentation

Py65 documentation is written using Sphinx <http://sphinx.pocoo.org/>_ and is published to http://py65.readthedocs.org/ <http://py65.readthedocs.org/>_.

Contributors

These people are responsible for Py65:

  • Mike Naberezny <https://github.com/mnaberez>_ is the original author of Py65 and is the primary maintainer.

  • Oscar Lindberg <https://github.com/offe>_ started the 65C02 simulation module and contributed greatly to its implementation.

  • Ed Spittles <https://github.com/biged>_ wrote the 65Org16 simulation module and provided many useful issue reports and patches.

  • David Beazley <https://github.com/dabeaz>_ did the initial port of Py65 to Python 3.

  • Alessandro Gatti <https://github.com/agatti>_ added support for breakpoints in the monitor.

  • Mario Keller <https://github.com/mkeller0815>_ added support for configuring getc/putc and fixed bugs in command line option parsing.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].