Skip to content
/ MC6809-1 Public
forked from jerch/MC6809

Implementation of the MC6809 CPU in Python (Extracted from https://github.com/jedie/DragonPy project)

License

Notifications You must be signed in to change notification settings

ysei/MC6809-1

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MC6809 CPU emulator written in Python

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

Tested with Python 2.7, 3.4 and PyPy

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

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

~$ MC6809 benchmark --help

# run benchmark with default settings:
~$ MC6809 benchmark

# run with own settings:
~$ MC6809 benchmark --loops 10 --multiply 20

(MC6809 is the cli installed by setup.py)

tests

We use nose to run the tests, e.g.:

~$ cd MC6809
~/MC6809 $ python2 setup.py nosetests
~/MC6809 $ python3 setup.py nosetests

profile

To profile, e.g.:

~$ python -m cProfile -s cumulative MC6809 benchmark

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)

  • 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

Links:

Forum http://forum.pylucid.org/
IRC #pylucid on freenode.net
Jabber pylucid@conference.jabber.org
PyPi https://pypi.python.org/pypi/MC6809
Github https://github.com/6809/MC6809

donation

About

Implementation of the MC6809 CPU in Python (Extracted from https://github.com/jedie/DragonPy project)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 91.4%
  • HTML 8.6%