Skip to main content

MC6809 CPU emulator written in Python

Project description

MC6809 CPU emulator written in Python

MC6809 is a Open source (GPL v3 or later) emulator for the legendary 6809 CPU, used old homecomputer Dragon 32/64 and Tandy TRS-80 Color Computer (CoCo) built in the 1980s…

Tested with Python 3.6, 3.7, 3.8 and PyPy3

Build Status on travis-ci.org

travis-ci.org/6809/MC6809

Coverage Status on coveralls.io

coveralls.io/r/6809/MC6809

A example usage can be find in: MC6809/example6809.py

usage:

~$ python3 -m venv MC6809
~$ cd MC6809
~/MC6809 $ source bin/activate
(MC6809) ~/MC6809 $ pip3 install MC6809
(MC6809) ~/MC6809$ MC6809 --help
Usage: MC6809 [OPTIONS] COMMAND [ARGS]...

  MC6809 is a Open source (GPL v3 or later) emulator for the legendary 6809
  CPU, used in 30 years old homecomputer Dragon 32 and Tandy TRS-80 Color
  Computer (CoCo)...

  Created by Jens Diemer

  Homepage: https://github.com/6809/MC6809

Options:
  --version  Show the version and exit.
  --help     Show this message and exit.

Commands:
  benchmark  Run a 6809 Emulation benchmark

There is a simple benchmark. Run e.g.:

(MC6809) ~/MC6809$ MC6809 benchmark --help

tests

~$ cd MC6809-clone
~/MC6809-clone $ make pytest
or
~/MC6809-clone $ poetry run pytest

profile

To profile, e.g.: $ cd MC6809-clone /MC6809-clone $ make profile or /MC6809-clone $ poetry run MC6809 profile }}}

TODO

  1. Update ‘cpu6809_html_debug.py’

  2. Use bottle for http control server part

unimplemented OPs:

  • RESET

  • SWI / SWI2 / SWI3

  • SYNC

History

(Some of the points are related to DragonPy Emulator)

  • 10.02.2020 - v0.6.0

    • modernize project and sources

    • skip support for Python 2

    • minimal Python v3.6

  • 19.10.2015 - v0.5.0

    • Split CPU with mixin inheritance

    • Optimizing:

      • remove .get() function calls from registers

      • move Condition Code Register (CC) into CPU via mixin class

    • Bugfix TFR and EXG by convert_differend_width()

    • Run DragonPy unittests on travis CI, too.

  • 24.08.2015 - v0.4.6

    • Add a “max_delay”, to fix the “freeze” after a speed limit change

    • rename some of the “speed limit” variables

  • 21.08.2015 - v0.4.5

    • deactivate ‘cpu6809_html_debug.py’ - TODO: update it!

    • update cli unittests

    • update README and code cleanup

  • 10.08.2015 - v0.4.4 - bugfix and cleanup the tests

  • 10.08.2015 - v0.4.3 - run unittests with nose

  • 27.05.2015 - v0.4.2 - Add MC6809/example6809.py

  • 26.05.2015 - v0.4.0, 0.4.1 - Split MC6809 from DragonPy

  • 22.09.2014 - Remove hacked CPU skeleton generator scripts with commit ac903a8f

  • 14.09.2014 - Release v0.2.0 - Add a speedlimit, config dialog and IRQ: Forum post 11780

  • 05.09.2014 - Release v0.1.0 - Implement pause/resume, hard-/soft-reset 6809 in GUI and improve a little the GUI/Editor stuff: v0.1.0 see also: Forum post 11719.

  • 27.08.2014 - Run CoCo with Extended Color Basic v1.1, bugfix transfer BASIC Listing with 8fe24e5…697d39e see: Forum post 11696.

  • 20.08.2014 - rudimenary BASIC IDE works with 7e0f16630…ce12148, see also: Forum post 11645.

  • 05.08.2014 - Start to support CoCo, too with 0df724b, see also: Forum post 11573.

  • 04.08.2014 - Use the origin Pixel-Font with Tkinter GUI, see: Forum post 4909 and Forum post 11570.

  • 27.07.2014 - Copyrigth info from Dragon 64 ROM is alive with 543275b, see: Forum post 11524.

  • 29.06.2014 - First “HELLO WORLD” works, see: Forum post 11283.

  • 27.10.2013 - “sbc09” ROM works wuite well almist, see: Forum post 9752.

  • 16.10.2013 - See copyright info from “Simple6809” ROM with 25a97b6 see also: Forum post 9654.

  • 10.09.2013 - Start to implement the 6809 CPU with 591d2ed

  • 28.08.2013 - Fork “Apple ][ Emulator” written in Python: https://github.com/jtauber/applepy to https://github.com/jedie/DragonPy

donation


Note: this file is generated from README.creole 2020-02-10 21:04:15 with "python-creole"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

MC6809-0.6.0.dev0.tar.gz (101.8 kB view details)

Uploaded Source

Built Distribution

MC6809-0.6.0.dev0-py3-none-any.whl (127.1 kB view details)

Uploaded Python 3

File details

Details for the file MC6809-0.6.0.dev0.tar.gz.

File metadata

  • Download URL: MC6809-0.6.0.dev0.tar.gz
  • Upload date:
  • Size: 101.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.6.9

File hashes

Hashes for MC6809-0.6.0.dev0.tar.gz
Algorithm Hash digest
SHA256 f1baf4d8624afc7032d65c093cf6abe00f1b652a4707a2b3703ae2eafe2d7995
MD5 6ba75e9b0d16771a6e4b63b4303c1428
BLAKE2b-256 e27bf8d002db9c51bca877c7279605f2e5b6ac41ec0e2fc0d91aa54424430444

See more details on using hashes here.

File details

Details for the file MC6809-0.6.0.dev0-py3-none-any.whl.

File metadata

  • Download URL: MC6809-0.6.0.dev0-py3-none-any.whl
  • Upload date:
  • Size: 127.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.6.9

File hashes

Hashes for MC6809-0.6.0.dev0-py3-none-any.whl
Algorithm Hash digest
SHA256 dafa34a700972926f15ce8ec742a6884d371ef61b420571ed9080263798945bc
MD5 1233e63f8bf1bb467ce48ed3744278b2
BLAKE2b-256 5e91443ca3b586b07dee8d0b8fd11209f5c3bf2969dfb47f2efbe2aa842f3fd7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page