跳转到主要内容

用于类似Dragon 32 / CoCo的6809 CPU系统的模拟器,用Python编写...

项目描述

Dragon/CoCo模拟器,用Python编写

DragonPy是一个开源(GPL v3或更高版本)模拟器,用于老式(1981年)的家用电脑Dragon 32Tandy TRS-80 Color Computer(CoCo)...

使用MC6809项目来模拟6809 CPU。

tests codecov dragonpy @ PyPi Python Versions License GPL-3.0-or-later

在Linux下使用CPython 3的Dragon 32

screenshot Dragon 32

在Windows下使用CPython 2的Tandy TRS-80 Color Computer 2b

screenshot CoCo under Windows

(注意:已移除Python 2支持)

DragonPy是用Python编写的。它是跨平台的,可以在Linux/Windows/OSX/...上使用Python和PyPy运行。它已与Python 3.x和PyPy进行测试

DragonPy不会是第二个用Python编写的XRoar。此项目主要是为了学习和理解。

未来目标是

  • 实现BASIC程序的集成开发环境

一个功能齐全的Dragon / CoCo模拟器是XRoar

当前状态

Dragon 32 / 64和CoCo的ROM在文本模式下工作。另外,“单板计算机”ROM sbc09、Simple6809和Multicomp6809也运行良好。

有一个基本的BASIC编辑器,可以直接将BASIC程序列表保存/加载到RAM中。

看起来像这样

旧版BASIC编辑器截图 (编辑器的旧版本)

Vectrex

《Vectrex》(维基百科)是一款基于矢量显示的电子游戏机。其硬件主要包括6809 CPU、6522通用接口适配器和AY-3-8912声音芯片。

当前状态完全无法使用。6522只是一个虚拟实现。只有显示一些跟踪线才有意义,例如。

.../DragonPy$ poetry run DragonPy --verbosity 0 --machine=Vectrex run --trace --max_ops=1

BASIC 编辑器

在主菜单中使用“BASIC编辑器/打开”来打开编辑器。

您可以从本地驱动器加载/保存ASCII .bas文件,或者直接输入BASIC列表。使用“注入到DragonPy”将当前列表从编辑器发送到模拟器,使用“从DragonPy加载”则从模拟器返回编辑器。注意:目前没有“警告”提示未保存的内容将被“覆盖”,也没有“自动备份”;)

“重新编号”工具可以在编辑器窗口的“工具”下找到。

您也可以在没有模拟器的情况下运行BASIC编辑器。

.../DragonPy$ make editor
# or:
.../DragonPy$ poetry run DragonPy editor

基本的BASIC源代码高亮显示可用,如下所示

screenshot BASIC Editor

特别功能:用于GOTO、SOGUB等的行号在左侧额外标注。

安装

重要:PyPi包名称为DragonPyEmulator,而不是仅“DragonPy”!!!

pip install DragonPyEmulator

从源代码

~$ git clone https://github.com/jedie/DragonPy.git
~$ cd DragonPy/
~/DragonPy$ ./cli.py --help

执行./cli.py --help的输出如下

Usage: ./cli.py [OPTIONS] COMMAND [ARGS]...

╭─ Options ────────────────────────────────────────────────────────────────────────────────────────╮
│ --help      Show this message and exit.                                                          │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────╮
│ download-roms              Download/Test only ROM files                                          │
│ editor                     Run only the BASIC editor                                             │
│ gui                        <<< **start this** - Start the DragonPy tkinter starter GUI           │
│ log-list                   List all exiting loggers and exit.                                    │
│ run                        Run a machine emulation                                               │
│ update-readme-history      Update project history base on git commits/tags in README.md          │
│ version                    Print version and exit                                                │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯

执行./cli.py run --help的输出如下

Usage: ./cli.py run [OPTIONS]

 Run a machine emulation

╭─ Options ────────────────────────────────────────────────────────────────────────────────────────╮
│ --verbosity           INTEGER RANGE [0<=x<=3]              Verbosity level; Accepts integer      │
│                                                            value e.g.: "--verbose 2" or can be   │
│                                                            count e.g.: "-vv"                     │
│                                                            [default: 0; 0<=x<=3]                 │
│ --trace/--no-trace                                         Create trace lines                    │
│                                                            [default: no-trace]                   │
│ --max-ops             INTEGER                              If given: Stop CPU after given cycles │
│                                                            else: run forever                     │
│ --machine             [CoCo2b|Dragon32|Dragon64|Multicomp  Used machine configuration            │
│                       6809|Simple6809|Vectrex|sbc09]       [default: Dragon32]                   │
│ --help                                                     Show this message and exit.           │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯

用法示例

~/DragonPy$ ./cli.py run
~/DragonPy$ ./cli.py editor

ROM文件

所有需要的ROM文件将自动下载。

文件将从以下地址下载

机器 下载地址
Dragon 32 + 64 http://archive.worldofdragon.org/archive/index.php?dir=Software/Dragon/Dragon%20Data%20Ltd/Dragon%20Firmware/
CoCo 2b http://www.roust-it.dk/coco/roms/
Multicomp http://searle.x10host.com/Multicomp/index.html
Simple6809 http://searle.x10host.com/6809/Simple6809.html

sbc09Vectrex ROM已包含在内。

所有ROM文件和下载在使用前将通过SHA1值进行校验。

开发

请使用dev-cli.py进行开发。

执行./dev-cli.py --help的输出如下

Usage: ./dev-cli.py [OPTIONS] COMMAND [ARGS]...

╭─ Options ────────────────────────────────────────────────────────────────────────────────────────╮
│ --help      Show this message and exit.                                                          │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────╮
│ check-code-style            Check code style by calling darker + flake8                          │
│ coverage                    Run tests and show coverage report.                                  │
│ fix-code-style              Fix code style of all cli_base source code files via darker          │
│ install                     Run pip-sync and install 'cli_base' via pip as editable.             │
│ mypy                        Run Mypy (configured in pyproject.toml)                              │
│ pip-audit                   Run pip-audit check against current requirements files               │
│ publish                     Build and upload this project to PyPi                                │
│ test                        Run unittests                                                        │
│ tox                         Run tox                                                              │
│ update                      Update "requirements*.txt" dependencies files                        │
│ update-readme-history       Update project history base on git commits/tags in README.md         │
│ update-test-snapshot-files  Update all test snapshot files (by remove and recreate all snapshot  │
│                             files)                                                               │
│ version                     Print version and exit                                               │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯

运行测试,例如

~/DragonPy$ ./dev-cli.py coverage
# or just:
~/DragonPy$ ./dev-cli.py test
# or with different Python versions:
~/DragonPy$ ./dev-cli.py tox

更多截图

“sbc09” ROM在Tkinter窗口中

screenshot sbc09

“Simple6809” ROM在Tkinter窗口中

screenshot simple6809

Dragon键盘

键盘映射存储在dragonpy/Dragon32/keyboard_map.py中。

一些说明

  • “CLEAR”映射到“Home”/“Pos 1”键
  • “BREAK”映射到“Escape”按钮
  • “LEFT”映射到左光标键,也映射到常规退格键。

实现了一个“自动大小写切换”模式。因此,常规小写字母将自动转换为大写字母。

粘贴剪贴板

可以将剪贴板内容粘贴为机器的用户输入。只需复制(Ctrl-C)以下内容

10 CLS
20 FOR I = 0 TO 255:
30 POKE 1024+(I*2),I
40 NEXT I
50 I$ = INKEY$:IF I$="" THEN 50

将焦点放在DragonPy窗口上,然后使用Ctrl-V粘贴内容。

看起来像这样

raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/DragonPy/20140805_DragonPy_Dragon32_Listing.png

然后只需运行,然后看起来像这样

raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/DragonPy/20140805_DragonPy_Dragon32_CharMap.png

DragonPy原理图

        Main Thread                                     Sub Thread
       (Tkinter GUI)
    +------------------+                         +---------------------+
    |                  |                         |                     |
    | +-------------+  |  CPU cycles/sec queue   |                     |
    | |            <------------------------------------+6809 CPU      |
    | |             |  |                         |       +     ^       |
    | |     GUI     |  |                         |       |     |       |
    | |             |  | Display RAM write queue |    +--v-----+--+    |
    | |  .--------------------------------------------+   Memory  |    |
    | |  |          |  |                         |    +--+-----^--+    |
    | |  |          |  |                         |       |     |       |
    | |  |          |  |                         | +-----v-----+-----+ |
    | |  |          |  |                         | |    Periphery    | |
    | |  |          |  |     Keyboard queue      | |   MC6883 SAM    | |
    | |  |          +--------------------------------->MC6821 PIA    | |
    | |  |          |  |                         | |                 | |
    | +--+-----^----+  |                         | |                 | |
    |    |     |       |                         | +-----------------+ |
    |    |     |       |                         |                     |
    | +--v-----+----+  |                         |                     |
    | |             |  |                         |                     |
    | |   Display   |  |                         |                     |
    | |             |  |                         |                     |
    | +-------------+  |                         |                     |
    +------------------+                         +---------------------+

性能

当前实现并未真正优化。

在控制台版本中,使用CPython大约有490,000 CPU周期/秒。这是实际硬件速度的一半。

使用PyPy大约有6,900,000 - 8,000,000 CPU周期/秒。换句话说,使用PyPy比实际硬件快8倍。

例如,Dragon 32 6809机器使用14.31818 MHz的晶振运行:0.895MHz(14.31818Mhz/16=0.895MHz),换句话说:895,000 CPU周期/秒。

待办事项

  • 实现更多Dragon 32外围设备
  • 覆盖率运行后缺少6809单元测试
    • MUL
    • BVS

PyDragon32

一些关于Dragon32/64 / CoCo家用电脑的Python / BASIC工具/脚本。

所有脚本均由Jens Diemer于2013-2020年创作,许可协议为GNU GPL v3或更高版本,请参阅LICENSE以获取更多详细信息。

Python脚本

BASIC程序

输入/输出测试

/BASIC/InputOutput/keyboard.bas 显示内存位置 $0152 - $0159(键盘矩阵状态表)

示例屏幕截图,按下“Y”键。您可以看到它保存在$0153

KeyBoard Screenshot 01

示例,按下“U”键

KeyBoard Screenshot 02

链接

一些链接

源代码

Dragon 32资源

致谢

一些代码基于

ApplePy

一个Python编写的Apple ][仿真器

XRoar

一个真正酷的Dragon / CoCo仿真器

包含的Python模块

python-pager

页面输出和查找控制台尺寸。

srecutils.py

摩托罗拉S-Record工具

要求

dragonlib

Dragon/CoCO Python库

MC6809

在Python中实现MC6809 CPU

pygments

通用语法高亮器

创建新版本

我们使用 cli-base-utilities 在此README中生成历史记录。

要创建新版本,执行以下操作

  • 增加您的项目版本号
  • 运行测试以更新README
  • 提交更改
  • 创建发布

历史记录

  • v0.9.3
    • 2024-09-24 - 从正常依赖中删除manageprojects,它不是必需的 ;)
    • 2024-09-24 - 更新CoCo2b ROM URL信息
    • 2024-09-24 - 更新项目设置 + 使用MC6809的humanize
    • 2024-09-24 - 更新要求
  • v0.9.2
    • 2024-04-16 - 修复打包错误
    • 2024-04-16 - 更新需求并应用manageproject更新
    • 2024-02-09 - 更新需求
    • 2024-01-16 - 更新需求 + 修复代码风格
    • 2023-12-17 - 修复代码风格和错误
    • 2023-12-17 - 不要因为大量DEBUG日志输出而减慢测试
    • 2023-12-17 - 应用manageprojects更新
  • v0.9.1
    • 2023-11-03 - 修复CI
    • 2023-11-03 - 应用manageprojects更新
    • 2023-11-03 - 修复test_tokens_in_string()
    • 2023-11-03 - 自动生成README历史
    • 2023-11-03 - 使用https://github.com/jedie/cli-base-utilities
    • 2023-11-02 - 将pip从23.2.1升级到23.3
  • v0.9.0
    • 2023-08-05 - 修复发布
    • 2023-08-05 - 分离CLI和dev-CLI + 移除Python 3.9支持
    • 2023-03-07 - 更新需求
    • 2023-03-07 - 更新README
扩展更早的历史条目 ...
  • v0.8.0
    • 2023-03-07 - 更新README.md
    • 2023-03-06 - 通过https://github.com/jedie/manageprojects迁移到pip-tools
    • 2022-10-19 - 更新需求
    • 2022-09-11 - 添加mandelbrot2.bas
    • 2022-09-11 - 添加mandelbrot1.bas列表
    • 2022-08-22 - README.creole -> README.md + 更新需求 + 添加一些测试
    • 2022-08-22 - 缓存 ~/.cache/
    • 2022-08-22 - 测试中不要删除ROM文件
    • 2022-08-22 - 小的代码风格更新
    • 2022-08-22 - 项目更新
    • 2022-02-01 - 将click CLI命令移动到devshell
    • 2022-01-31 - +pip缓存信息'
    • 2022-01-31 - 修复代码风格
    • 2022-01-31 - 通过减小矩阵大小临时加速github actions ;)
    • 2022-01-31 - 删除linting动作 -> 因为linting是通过pytest插件完成的,所以已过时
    • 2022-01-31 - 在开始测试之前下载ROMs(应该被缓存)
    • 2022-01-31 - 通过autouse pytest fixtures拒绝测试中的任何请求
    • 2022-01-31 - 在出错时显示输出
    • 2022-01-31 - Bugfix: CLI使用时存在
    • 2022-01-30 - 删除PytestCollectionWarning
    • 2022-01-30 - 修复代码风格
    • 2022-01-30 - 更新utils.py
    • 2022-01-30 - 修复格式
    • 2022-01-30 - 修复元配置问题
    • 2022-01-30 - 将"download_roms"重构从旧CLI到dev-shell命令
    • 2022-01-30 - 从CLI中删除nose测试
    • 2022-01-30 - 使用dev-shell
    • 2022-01-30 - 缓存pip+roms
  • v0.7.0
    • 2020-10-01 - 更新README
    • 2020-10-01 - 更新windows tk工作区: https://github.com/pypa/virtualenv/issues/93
    • 2020-10-01 - 更新vectrex
    • 2020-10-01 - Bugfix "--max_ops" CLI选项
    • 2020-10-01 - 更新CoCo2b、Multicomp6809和Simple6809的ROM下载URL
    • 2020-10-01 - 更新Dragon 32/64 ROM下载URL
    • 2020-10-01 - Bugfix rom下载错误处理
    • 2020-10-01 - 处理ROM下载错误
    • 2020-10-01 - 添加更多"make"目标
    • 2020-10-01 - WIP: 修复github actions
    • 2020-10-01 - 添加"make run"以启动GUI
    • 2020-10-01 - 删除Python 2代码 + 修复代码风格和大多数flake8错误
    • 2020-10-01 - 更新需求
    • 2020-10-01 - 添加"make update"
    • 2020-02-10 - 更新pythonapp.yml
    • 2020-02-10 - 应用pyupgrate + 代码风格
    • 2020-02-10 - 应用代码风格
    • 2020-02-10 - fixup! 删除bootstrap文件
    • 2020-02-10 - 运行2to3并对测试进行最小更新,以便测试运行并通过
    • 2020-02-10 - 删除bootstrap文件
    • 2020-02-10 - WIP: 现代化项目设置
  • v0.6.0
    • 2018-06-19 - 修复在正常PyPi安装上“没有模块名为'nose'”的问题
    • 2018-06-19 - +build.log
    • 2018-06-19 - https://pypi.python.org/pypi/ -> https://pypi.ac.cn/project/
    • 2018-06-19 - +python-creole
    • 2018-06-19 - +twine
    • 2018-06-19 - 更新setup.py发布代码
    • 2018-06-19 - 更新README.creole
    • 2016-08-22 - 修复截图链接
    • 2016-08-22 - 更新启动文件
    • 2016-08-22 - git url中的bugfix
    • 2015-10-20 - 更新readme版本号
    • 2015-10-19 - 更新mc6809请求。
    • 2015-10-19 - 更新Simple6809单元测试。
    • 2015-10-19 - * 在注释中更改了机器的名称。
    • 2015-10-19 - * 一些更多错误修复。
    • 2015-10-18 - * 修复了尝试写入ROM时的错误 * 对Simple6809的运行进行了一些小修复。
    • 2015-09-03 - 为新的mc6809寄存器API进行更改。
    • 2015-09-03 - 在MC6809中进行了更改。
    • 2015-08-31 - 将'nosetest'添加到命令行界面(由MC6809使用)。
  • v0.5.3
    • 2015-08-24 - 更新README,以v0.5.3版本发布。
    • 2015-08-24 - 需要最后版本。
    • 2015-08-24 - 更新“速度限制”相关内容。TODO:完全重构此内容!
    • 2015-08-24 - 更新.travis.yml。
    • 2015-08-21 - 修复py2中的单元测试。
  • v0.5.2
    • 2015-08-21 - 更新README并作为v0.5.2版本发布。
    • 2015-08-21 - 更好的起始解决方案,压缩了以下提交。
    • 2015-08-20 - 删除过时的脚本。
    • 2015-08-20 - 添加运行'MC6809基准'按钮。
    • 2015-08-19 - 更新README。
  • v0.5.1
    • 2015-08-19 - 错误修复,例如:在"sbc09"模拟中的键盘输入。
    • 2015-08-19 - 添加关于“png字体解析代码”的注释,移除,请参阅。
    • 2015-08-19 - 删除字体生成代码。
    • 2015-08-19 - 修复doctest。
    • 2015-08-19 - 删除png.py的副本。
    • 2015-08-19 - 更新/清理/删除过时代码。
    • 2015-08-19 - 使用PyPy3运行测试。
    • 2015-08-19 - 使用nose运行单元测试。
    • 2015-08-19 - 将“创建状态栏”移动。
    • 2015-08-19 - 添加“仅运行BASIC编辑器”按钮并显示Python版本信息。
    • 2015-08-19 - +=== 要求
    • 2015-08-19 - 删除test_run()。
    • 2015-08-19 - 添加“起始GUI”+在Windows下使用virtualenv时tkinter的work-a-round。
    • 2015-08-18 - PyPi包名为:“DragonPyEmulator”!
    • 2015-08-18 - 清理列表。
  • v0.5.0
    • 2015-08-18 - WIP:添加比较链接。
    • 2015-08-18 - 更新“发布”设置。
    • 2015-08-18 - 使用分支黑名单。
    • 2015-08-18 - 重构ROM下载。
    • 2015-08-17 - 更新到新的bootstrap_env API。
    • 2015-08-17 - 更新README.creole。
    • 2015-06-09 - 更新bootstrap。
  • v0.4.0
    • 2015-05-26 - -travis-pro
    • 2015-05-26 - 错误修复组件导入。
    • 2015-05-26 - 从2ec642f412caf8e30da1489617b9e8448a899c63恢复旧文件。
    • 2015-05-26 - 下载ROM,以便每个测试都可以运行。
    • 2015-05-26 - 使用恢复的rom.py。
    • 2015-05-26 - 从恢复旧的rom.py文件。
    • 2015-05-26 - 更好的测试调用。
    • 2015-05-26 - 更新travis配置。
    • 2015-05-26 - 使用setup.py entry_points为dragonpy.core.cli。
    • 2015-05-26 - +wheel & 更新bootstrap文件。
    • 2015-05-26 - 作为0.4.0版本发布。
    • 2015-05-26 - 添加发布。
    • 2015-05-26 - MC6809
    • 2015-05-26 - 删除6809相关内容并使用https://github.com/6809/MC6809
    • 2015-05-20 - 添加帮助文本。
    • 2015-05-20 - 删除PyDev配置。
    • 2015-05-20 - 更新启动脚本。
    • 2015-05-20 - 更新README。
    • 2015-05-20 - 添加更好的错误信息。
    • 2015-05-20 - 更新README.creole。
    • 2015-05-20 - 更新travis-ci.org配置。
    • 2015-05-20 - 移动/重命名CLI代码并删除过时代码。
    • 2015-05-20 - 修复CLI及其测试中的错误。
    • 2015-05-20 - 更新bootstrap。
    • 2015-05-20 - 将Click -> click重命名。
    • 2015-01-28 - 开始使用“Click”重新实现CLI。
    • 2015-01-28 - 添加bootstrap文件 - TODO:更新README ;)
  • v0.3.2
    • 2014-12-15 - 在BASIC编辑器中使用pygments语法高亮。
    • 2014-12-06 - 更新.travis.yml。
    • 2014-12-06 - 更新README.creole。
    • 2014-11-13 - 'dragonlib'作为依赖项。
    • 2014-11-13 - 外包dragonlib。
    • 2014-11-13 - 移动LOG_LEVELS。
  • v0.3.1
    • 2014-10-08 - 修复ReSt错误。
    • 2014-10-08 - 更新README。
    • 2014-10-08 - 添加setup.cfg。
    • 2014-09-30 - 修复复制粘贴错误:例如:粘贴两次。
    • 2014-09-30 - WIP:BASIC 编辑器:重新格式化代码
    • 2014-09-30 - 添加更多信息
    • 2014-09-30 - 修复错误
    • 2014-09-30 - 添加一些动态的 "加载中..." 信息
    • 2014-09-30 - 使用 tkinter 事件.keysym 处理特殊键
    • 2014-09-30 - WIP:文本高亮
    • 2014-09-30 - 在 BASIC 编辑器中添加复制和粘贴功能
    • 2014-09-30 - 修复 renum 工具和 renum INVADER.bas 错误
    • 2014-09-30 - 修复 PY3 错误
    • 2014-09-30 - 在 BASIC 编辑器中激活撤销功能
    • 2014-09-30 - 编辑器中增强的 "显示令牌" 功能
    • 2014-09-30 - 修复行号 > $ff 的错误
    • 2014-09-30 - 添加更详细的信息 "显示令牌" 窗口
    • 2014-09-30 - 显示数据
    • 2014-09-29 - 在基本编辑器中添加垂直滚动条并禁用换行
    • 2014-09-29 - 添加 Jim Gerrie 的原始 INVADER.bas
    • 2014-09-29 - 不要打开设置对话框
    • 2014-09-29 - 移动 BASIC 文件
    • 2014-09-29 - 在溢出错误上显示更多信息
    • 2014-09-29 - 移动 BASIC 程序
    • 2014-09-14 - 忽略没有地址的行
    • 2014-09-14 - 修复错误:处理没有 CC 的行,例如:[RESET],[IRQ]
    • 2014-07-31 - 更新 README.creole
    • 2014-07-31 - 添加 /InputOutput/keyboard.bas
    • 2014-07-26 - WIP:xroar GDB
    • 2014-07-12 - 添加 "--add_cc"
    • 2014-07-10 - WIP
    • 2014-07-10 - 新过滤器:"filter_xroar_trace.py --start-stop=8c37-91c1"
    • 2014-07-10 - 添加 "filter_xroar_trace.py --unique" 功能
    • 2014-07-10 - 在实时过滤时显示状态
    • 2014-07-10 - 使用简单的缓存以实现大速度提升。
    • 2014-07-09 - 添加 "add_info_in_trace.py"
    • 2014-07-09 - 添加实时过滤
    • 2014-07-09 - 添加 xroar 过滤脚本的 CLI 并添加 README
    • 2014-07-09 - WIP:xroar 跟踪过滤脚本。
    • 2014-07-08 - WIP:FPA0 测试
    • 2014-06-27 - 更新 TST
    • 2014-06-27 - 添加 NEGA 测试
    • 2013-10-25 - 添加带有 LSL 的 CC 测试
    • 2013-10-24 - 添加带有 TST 的 CC 测试
    • 2013-10-24 - 更新带有 INC 的 CC 测试
    • 2013-10-24 - 添加带有 DEC 的 CC 测试
    • 2013-10-24 - 更新带有 SUBA 的 CC 测试
    • 2013-10-24 - 更新带有 ADDA 的 CC 测试
    • 2013-10-22 - 在 ASCII 文件中添加间隔
    • 2013-10-22 - 更好的输出 + 添加截图
    • 2013-10-21 - 清除 INC 之前的 CC
    • 2013-10-21 - 添加一个带有 INC 的 CC 测试
    • 2013-10-16 - 跳过空行(例如 XRoar 需要在末尾有一个空行)
    • 2013-10-11 - 添加两个更多的 CC 测试文件
    • 2013-10-11 - "覆盖" 打印更快更美观 ;)
    • 2013-10-11 - 添加截图
    • 2013-10-11 - 添加 BASIC 程序:测试 CC 寄存器
    • 2013-10-04 - 开始一个简单的内存十六进制查看器
    • 2013-09-09 - 将输出分成块,最大大小为 255 字节
    • 2013-09-09 - 添加 '--case_convert' 命令行参数。见 README
    • 2013-09-09 - 删除官方示例
    • 2013-09-09 - * 使用一个 convert() 方法进行所有方式。 * 将一些转换代码移动到 Cassette() 类中 * 代码清理 * 更新 README
    • 2013-09-09 - 删除 BASIC 代码结束标记,似乎它不是必需的。
    • 2013-09-09 - 错误修复:* 使用 GAP-Flag 用于 ASCII BASIC * 不要在块末尾产生魔法字节 * 不要在 BASIC 文件中产生机器代码起始/加载地址
    • 2013-09-07 - 处理代码分布在多个块中的 wav/cas
    • 2013-09-07 - 从文件名设置 "机器代码起始/加载地址"。见:http://archive.worldofdragon.org/phpBB3/viewtopic.php?f=8&t=4341&p=9094#p9094
    • 2013-09-06 - 如果块类型未知,显示更多信息。
    • 2013-09-06 - 错误修复:.cas 文件必须在块之间没有引导字节。
    • 2013-09-06 - log.info:间隙标志 / 机器代码起始/加载地址
    • 2013-09-06 - 二进制机器代码文件是 0x02,而不是 0xff,对吗?
    • 2013-09-06 - 修复仅找到位1或位0时的错误。
    • 2013-09-06 - 在cli中添加位1/0的频率。
    • 2013-09-02 - 在CLI中使用配置中的默认值。
    • 2013-09-06 - bas2wav工作得更好,但一些错误尚未修复...
    • 2013-09-06 - 添加"逐步"的bas2cas单元测试。
    • 2013-09-06 - 为bas2cas -> cas2bas添加单元测试。
    • 2013-09-06 - 清理导入。
    • 2013-09-06 - 捕获BASIC代码结束。
    • 2013-09-06 - 调试块内容。
    • 2013-09-06 - 修复错误的校验和错误。
    • 2013-09-05 - 更新cas2bas。
    • 2013-09-05 - 开始cas2bas。
    • 2013-09-04 - 添加bas2cas。
    • 2013-09-04 - bas2wav中的错误已修复,但仍然不起作用,等等:(:
    • 2013-09-04 - 使用持续时间而不是Hz来触发位。
    • 2013-09-04 - 将最小/最大Hz移动到方法中。
    • 2013-09-04 - 只在触发中产生持续时间。
    • 2013-08-31 - 在分析过程中显示进程信息。
    • 2013-08-31 - 合并--analyze功能。
    • 2013-08-30 - 错误修复:捕获IndexError。
    • 2013-08-30 - 错误修复:使用logfilename。
    • 2013-09-03 - 显示开始/结束。
    • 2013-08-30 - 显示绝对波形位置。
    • 2013-08-30 - 实现bas2wave ; ) 但看起来流仍然无效,等等:(:
    • 2013-08-30 - 代码清理。
    • 2013-09-03 - 更好的测试输出。
    • 2013-08-30 - 在比特流中也消耗魔数字节。
    • 2013-09-02 - 将工作状态添加到主状态。
    • 2013-08-28 - 代码清理:* 将一些设置移动到配置文件中 * 创建一个wav2bad()函数并在CLI中使用它。
    • 2013-08-28 - 显示并检查块校验和。
    • 2013-08-28 - 增大同步字节搜索大小,例如: "Dragon Data Ltd - 例子来自手册 - 39~58 [运行].wav"。
    • 2013-08-27 - 添加命令行界面。
    • 2013-08-27 - 添加一个'平均样本'函数,但关闭可能是最好的主意 ;)
    • 2013-08-27 - 实现一个新触发器,它真的工作!请参阅:http://www.python-forum.de/viewtopic.php?p=244702#p244702 (de)
    • 2013-08-27 - 在每个块开始时进行位同步。
    • 2013-08-26 - 许多错误修复。开始实现BAS2WAV的代码,但现在只用于调试。
    • 2013-08-26 - 作为流处理工作,但只有与"HelloWorld1 xroar.wav"一起时才如此。
    • 2013-08-26 - 提交损坏状态。
    • 2013-08-25 - 提交当前损坏状态。
    • 2013-08-25 - 错误修复:如果波形是8位的。
    • 2013-08-23 - 当前状态带有"自动同步"。
    • 2013-08-23 - 使用"文本级别仪表"进行更好的调试。
    • 2013-08-22 - 当前损坏状态。
    • 2013-08-22 - 同步工作,但无用了?
    • 2013-08-22 - 添加一个新的类似于施密特触发器的wave2bitstream实现。
    • 2013-08-21 - 在BASIC代码解析中检查block_length。
    • 2013-08-21 - ASCII BASIC解析器现在工作。
    • 2013-08-20 - 开始支持ASCII BASIC文件,但尚未完成。
    • 2013-08-20 - bytes2codeline(): 更简单。
    • 2013-08-20 - 移动文件。
    • 2013-08-20 - 初始提交。
    • 2013-08-20 - 正确处理指针和行号。
    • 2013-08-20 - 使用数组代替struct.unpack来获取波形值。
    • 2013-08-19 - 使用MAX_HZ_VARIATION来分离位1或位0的显示,并显示一些位检测的统计信息。
    • 2013-08-18 - 重构读取。
    • 2013-08-18 - 也支持32位波形文件。为什么?不知道... ;)
    • 2013-08-18 - 解包WAV帧中的错误修复。
    • 2013-08-18 - 通过分块读取WAVE来加速。
    • 2013-08-18 - 处理'功能令牌'。
    • 2013-08-18 - 在读取WAV文件时添加状态。
    • 2013-08-17 - 解析文件内容。将数据放入对象中。
    • 2013-08-17 - 添加一个文件名块类。
    • 2013-08-17 - 删除未使用的代码。
    • 2013-08-16 - 使用同步字节获取块的真正起始位置。获取并使用块类型/大小。
    • 2013-08-16 - 添加BASIC_TOKENS字典并使用它。添加TEST_STR并尝试找到它。
    • 2013-08-16 - 我看到了HELLO WORLD! ;)
    • 2013-08-15 - 切除相关数据
    • 2013-08-15 - 添加一个脚本将龙32卡带WAV文件转换为纯文本。
  • v0.3.0
    • 2014-09-25 - 修复sbc09 unittest错误
    • 2014-09-25 - 更新README
    • 2014-09-25 - 重新实现SBC09 ;)
    • 2014-09-25 - 分割Op数据 - 以下提交的压缩版本
    • 2014-09-24 - 禁用一些日志输出并更新pypy win批处理
    • 2014-09-24 - display_queue -> display_callback
    • 2014-09-22 - 代码清理并禁用一些日志输出
    • 2014-09-22 - 移动ROM加载代码
    • 2014-09-22 - 代码清理
    • 2014-09-22 - 仅记录缺失的ROM文件。
    • 2014-09-22 - 文件重命名和删除过时文件
    • 2014-09-22 - 移动CPU实用工具
    • 2014-09-22 - 使用COUNT变量
    • 2014-09-22 - 添加一些Windows启动批处理
    • 2014-09-22 - 更新直接测试
    • 2014-09-22 - 如果转储不包含地址...则不要引发错误
    • 2014-09-22 - 更新unittest
    • 2014-09-22 - 移动MC6809data
    • 2014-09-22 - 忽略.idea/*
    • 2014-09-22 - 更新到新API
    • 2014-09-22 - 更好的默认日志格式化程序
    • 2014-09-22 - 更少的日志输出
    • 2014-09-18 - 修复unittest错误
    • 2014-09-18 - 更新CLI unittest
    • 2014-09-18 - unittests的快速解决方案
    • 2014-09-18 - 更新test_run()
    • 2014-09-18 - 如果例如ROM加载到错误区域,显示更多信息
    • 2014-09-18 - 重新实现Multicomp 6809 !
    • 2014-09-18 - 如果ROM文件缺失,则中止
    • 2014-09-18 - 更改日志设置
    • 2014-09-14 - 更好的日志输出
    • 2014-09-14 - 更新etimer测试脚本
    • 2014-09-14 - 修复IRQ错误
    • 2014-09-14 - 更新README,另见
  • v0.2.0
    • 2014-09-14 - 发布v0.2.0
    • 2014-09-14 - 在编辑器中设置默认目录 + 在标题中显示文件名
    • 2014-09-14 - 修复运行时错误
    • 2014-09-13 - 在状态行显示Python版本信息
    • 2014-09-13 - 代码清理
    • 2014-09-13 - 修复Py2错误
    • 2014-09-13 - 将Python主版本号添加到pickle文件中
    • 2014-09-13 - 更新linux开发脚本
    • 2014-09-13 - 也更新dragonlib中的unittests。
    • 2014-09-13 - 重新实现:运行CPU的速度不超过给定的速度限制
    • 2014-09-13 - 更新unittests
    • 2014-09-13 - 修复six.moves.xrange错误
    • 2014-09-13 - 删除旧的multiprocessing文件
    • 2014-09-13 - 使用six.py中的xrange
    • 2014-09-13 - --version适用于Python 2和3
    • 2014-09-12 - 用six替换自己的lib2and3
    • 2014-09-12 - WIP:重构日志使用
    • 2014-09-12 - WIP:CPU运行
    • 2014-09-11 - WIP:一个新的、KISS解决方案?
    • 2014-09-11 - 不需要
    • 2014-09-11 - 开始,重构内存
    • 2014-09-09 - 在PIA中添加更多注释
    • 2014-09-08 - 合并代码
    • 2014-09-08 - 将“目标CPU突发循环”添加到GUI配置中
    • 2014-09-08 - 实现一个触发CPU周期的回调机制
    • 2014-09-07 - WIP:实现IRQ
    • 2014-09-08 - 记录TIMER的读写
    • 2014-09-08 - 将CoCo2b更新到新的API
    • 2014-09-08 - 将文本左对齐
    • 2014-09-08 - 看到它在运行
    • 2014-09-08 - 将“max_run_time”也放入配置GUI中
    • 2014-09-11 - 修复ReSt生成?
    • 2014-09-11 - 删除过时文件
    • 2014-09-11 - 使用array.array("B", ...)为RAM/ROM内存
    • 2014-09-11 - 为写入字节添加回调/中间件测试
    • 2014-09-11 - 通过使用reraise使用更好的回溯
    • 2014-09-11 - unittest...中的错误修复
    • 2014-09-10 - Bugfix:重新打开配置对话框
    • 2014-09-10 - 在coco .sh中也使用--verbosity 99
    • 2014-09-09 - 在CLI中添加--verbosity 99
    • 2014-09-07 - 更好的速度限制解决方案。TODO:代码清理
    • 2014-09-07 - WIP:更好的速度限制
    • 2014-09-07 - 添加一个不太好的速度限制
    • 2014-09-05 - 更新setup.py
  • v0.1.0
    • 2014-09-05 - 待发布:发布为v0.1.0
    • 2014-09-05 - 包含免费的v09.rom和vectrex ROM
    • 2014-09-05 - 移动sbc09 rom
    • 2014-09-05 - 更新sbc09相关内容
    • 2014-09-05 - 删除Multicomp-/Simple 6809 ROMs并更新下载脚本。
    • 2014-09-05 - 分割下载ROMs脚本
    • 2014-09-05 - 包含脚本
    • 2014-09-05 - 如果缺少ROM文件,则跳过unittest
    • 2014-09-05 - 忽略/dist/
    • 2014-09-05 - 删除过时文件
    • 2014-09-05 - 包含更多文件
    • 2014-09-05 - 使用python-creole动态生成ReSt README,见
    • 2014-09-05 - bugfix renum
    • 2014-09-05 - 移动DragonPy命令
    • 2014-09-05 - 加快粘贴输入处理
    • 2014-09-05 - 只打开一次编辑器
    • 2014-09-05 - 更好的初始位置
    • 2014-09-05 - 更好的编辑器窗口初始位置
    • 2014-09-05 - 将"BASIC编辑器"菜单项转换为可点击的命令
    • 2014-09-05 - 重要:此处针对Python 2
    • 2014-09-05 - 实现"硬复位"
    • 2014-09-05 - 实现CPU软复位
    • 2014-09-05 - 添加CPU暂停/恢复
    • 2014-09-05 - 在启动时在状态行显示"启动 XXX..."
    • 2014-09-05 - 不发生
    • 2014-09-05 - 设置--loops 10
    • 2014-09-05 - 仅添加替代注释
    • 2014-09-05 - 简单循环优化
    • 2014-09-05 - 错误信息更详细
    • 2014-09-04 - 更新README.creole
    • 2014-09-04 - 更新dev .cmd文件
    • 2014-09-04 - 针对https://bitbucket.org/pypy/pypy/issue/1858/pypy3-localeformat-d-val-1的问题的解决方案
    • 2014-09-04 - "备受尊敬的" https://github.com/jedie/DragonPy/commit/803f901a03f55d96d621e3bc266ff0d67d8a6225
    • 2014-09-04 - 从future导入unicode_literals
    • 2014-09-04 - 动态调整CPU突发计数
    • 2014-09-04 - 针对 Py2 的解决方案:className不能是unicode
    • 2014-09-04 - 统一dev启动脚本
    • 2014-09-04 - 更新unittests
    • 2014-09-04 - 删除线程相关内容,并仅使用tkinter
    • 2014-09-04 - 在PyDev中更改语法版本
    • 2014-09-04 - 重命名基本示例
    • 2014-09-04 - bugfix string.letters vs. string.ascii_letters
    • 2014-09-03 - bugfix cli unittest
    • 2014-09-03 - 将print改为log输出
    • 2014-09-03 - 明确关闭
    • 2014-09-03 - log.warn() -> log.warning()
    • 2014-09-03 - 更新README
    • 2014-09-03 - 添加简单的CLI测试
    • 2014-09-03 - 添加简单的基准测试
    • 2014-09-03 - 使用'{:n}'.format(val)进行格式化 cycles/sec
    • 2014-09-03 - 添加.pyo
    • 2014-09-03 - 代码清理
    • 2014-09-03 - bugfix if run with -OO
    • 2014-09-03 - 格式化 cycles/sec 数字(千位分隔符)
    • 2014-09-03 - 通过装饰器打印所有捕获的Ops
    • 2014-09-03 - bugfix 运行CoCo的CLI
    • 2014-09-03 - 使用: python -m unittest discover
    • 2014-09-03 - 更新:支持的Python版本
    • 2014-09-03 - 在打开/保存对话框中预定义文件类型
    • 2014-09-03 - 改变为支持Python 2和3的相同代码
    • 2014-09-03 - 改变为使用python2和future导入运行
    • 2014-09-03 - 只运行2to3脚本
    • 2014-09-01 - 待发布:将Chris Smith别名raz0red的JSVecX部分移植过来
    • 2014-08-31 - 待发布:仅为Vectrex添加示例代码
    • 2014-08-28 - 更好的颜色
    • 2014-08-28 - 合并/移动BASIC示例文件
    • 2014-08-28 - 重新编号时保存/恢复光标和滚动位置
    • 2014-08-28 - 分割代码部分
    • 2014-08-28 - 更好的编辑器调整大小
    • 2014-08-28 - 注释测试代码
    • 2014-08-28 - 突出显示行号和更多内容
    • 2014-08-28 - 首先,简单的代码突出显示
    • 2014-08-28 - 不要消耗行号和代码之间的空格
    • 2014-08-28 - 在编辑器中突出显示当前行
    • 2014-08-28 - 添加MultiStatusBar并显示当前列/行
    • 2014-08-28 - 更好的"反转shift"解决方案
    • 2014-08-28 - 使BASIC Editor可通过CLI运行
    • 2014-08-27 - 重新实现CLI,今天仅适用于Dragon32/64和CoCo
    • 2014-08-27 - 待发布:移动启动代码
    • 2014-08-27 - move machine.py
    • 2014-08-27 - README中的错别字
    • 2014-08-27 - 添加"inject + RUN"并通过user_input_queue输出消息
    • 2014-08-27 - 在BASCI编辑器中激活"反转Shift"功能
    • 2014-08-27 - 将历史添加到README
    • 2014-08-27 - 在CoCo中调试输出地址
    • 2014-08-27 - Bug修复:CoCo使用相同的默认起始地址
    • 2014-08-27 - 使用Extended Color BASIC 1.1更新CoCo令牌
    • 2014-08-27 - 更新ROM下载相关内容
    • 2014-08-26 - 将ROM配置文件拆分,以便可以加载多个ROM文件
    • 2014-08-26 - 仅进行代码格式化
    • 2014-08-26 - Bug修复:当None被视为字节数值时,会导致机器崩溃
    • 2014-08-26 - 如果CPU引发错误,显示完整的跟踪信息
    • 2014-08-26 - 如果外围设备返回None,则引发错误
    • 2014-08-20 - Bug修复:示例提示
    • 2014-08-20 - 将CoCo信息添加到README
    • 2014-08-20 - 优化了十六进制查看器程序
    • 2014-08-20 - 重新编号hex_view01.bas
    • 2014-08-20 - 添加原始的Hex Viewer脚本
    • 2014-08-20 - 添加sorchard的ListVariables.bas
    • 2014-08-20 - CoCo使用的默认程序起始地址与Dragon不同
    • 2014-08-20 - "错别字"
    • 2014-08-20 - + 0xff80: "SGN"
    • 2014-08-20 - WIP:在编辑器中支持CoCo
    • 2014-08-20 - 添加BASIC示例程序
    • 2014-08-20 - 在内部执行' <-> :'和ELSE <-> :ELSE替换
    • 2014-08-20 - 使用新的BASIC解析器 - TODO:代码清理!
    • 2014-08-20 - 将行号转换为整数
    • 2014-08-20 - 重命名格式化函数
    • 2014-08-20 - 添加具有unittests的BASIC解析器
    • 2014-08-20 - 代码格式化
    • 2014-08-18 - 添加TODO unittests
    • 2014-08-18 - 更好的调试输出
    • 2014-08-18 - 在加载/注入BASIC程序时更好的日志输出
    • 2014-08-18 - 在运行CPU时捕获unitest异常
    • 2014-08-18 - 在GUI中处理KeyboardInterrupt
    • 2014-08-18 - Bug修复:在重编号中支持ON...GOTO和ON...GOSUB
    • 2014-08-17 - 添加另一个renum unittest和代码清理
    • 2014-08-17 - 在编辑器中添加"renumber listing"工具
    • 2014-08-17 - TODO:不要将倒序的词替换为注释和字符串中的令牌。
    • 2014-08-17 - Bug修复:"Cfg"对象没有名为"memory_word_middlewares"的属性
    • 2014-08-16 - 注入BASIC程序的Bug修复
    • 2014-08-16 - 插入后设置光标到起始位置
    • 2014-08-16 - 移除编辑窗口边框
    • 2014-08-16 - 使用ScrolledText并实现加载/保存
    • 2014-08-16 - WIP:将dump/load相关内容移入编辑器
    • 2014-08-15 - WIP:拆分项目:BASIC编辑器
    • 2014-08-15 - WIP:开始拆分项目:添加"dragonlib"
    • 2014-08-14 - 禁用运行所有unittests的日志记录
    • 2014-08-14 - 添加提取BASIC程序unittest
    • 2014-08-14 - 更好地使用X而不是@
    • 2014-08-14 - Bug修复unittest初始化
    • 2014-08-14 - Bug修复:如果d32.rom不存在,则跳过unittests
    • 2014-08-14 - 使用Dragon 32 ROM启动unittests ;)
    • 2014-08-13 - 将BASIC列表从编辑器传输到RAM成功!!!
    • 2014-08-13 - 创建一个只有一些断言的基础测试用例
    • 2014-08-13 - 移动签名例程和...
    • 2014-08-12 - WIP:将BASIC代码转换为令牌
    • 2014-08-12 - Bug修复显示BASIC代码
    • 2014-08-11 - WIP:BASIC编辑器...
    • 2014-08-11 - 不在画布周围突出显示边框
    • 2014-08-10 - WIP:GUI与CPU的通信
    • 2014-08-10 - 添加缺失的rom信息
    • 2014-08-08 - 重命名MC6847_TextModeCanvas
    • 2014-08-08 - 添加一些注释和代码清理
    • 2014-08-08 - 使用canvas.itemconfigure()替换字符图像
    • 2014-08-08 - 禁用CPU中的PUSH日志
    • 2014-08-08 - 将%(processName)s %(threadName)s添加到默认日志格式化器
    • 2014-08-07 - 在GUI中计算周期/秒
    • 2014-08-07 - WIP:更改队列内容以在PyPy中也有效
    • 2014-08-07 - 移动一些当前不可用的文件
    • 2014-08-07 - 将queue.put_nowait()更改为queue.put()
    • 2014-08-07 - 更新根目录以响应变更并添加更多日志输出
    • 2014-08-07 - Bugfix: 在CPUStatusThread中访问cpu.cycles
    • 2014-08-07 - 在README中添加DragonPy原理图
    • 2014-08-07 - 改进队列通信
    • 2014-08-07 - 清理机器启动相关内容
    • 2014-08-07 - 使用E124、E128、E301、E309、E501重排代码
    • 2014-08-07 - WIP: 将GUI和机器分离到不同的线程中
    • 2014-08-07 - 将CPU移动到独立的线程
    • 2014-08-06 - 支持 CoCo 键盘输入!
    • 2014-08-06 - CoCo 输入的解决方案
    • 2014-08-06 - 添加更多 CoCo ROM 变体
    • 2014-08-06 - 在下载脚本中添加 CoCo ROM
    • 2014-08-06 - 将 RND() 种子调试输出也添加到 CoCo 配置中
    • 2014-08-06 - 添加 RND() 种子调试输出
    • 2014-08-06 - 内存中间件中的 Bugfix
    • 2014-08-06 - 首先读取高字节
    • 2014-08-06 - 更新 "reset vector" 附近的代码
    • 2014-08-06 - 使用 memory.add_write_byte_middleware() 而不是 "自用显示 RAM"
    • 2014-08-06 - 将外围内存钩子直接移动到内存中
    • 2014-08-06 - 在 Dragon 32 配置中禁用键盘调试中间件
    • 2014-08-06 - 将内存回调重命名为中间件,现在它们可以操作字节
    • 2014-08-05 - WIP: 添加 CoCo
    • 2014-08-05 - 添加有关损坏的 CLI 的信息
    • 2014-08-05 - 在 Dragon32 中显示 CPU 周期输出
    • 2014-08-05 - sbc09 中的 Bugfix
    • 2014-08-05 - 更新 Dragon32_test.py + 在标题中添加机器名称
    • 2014-08-05 - 在粘贴时提供更友好的调试输出
    • 2014-08-05 - 分离 cpu 循环和状态更新
    • 2014-08-04 - 添加缺失的块字符。直接将填充添加到字符字典中
    • 2014-08-04 - ./Dragon64_test.py 工作了!
    • 2014-08-04 - 忽略 *.rom 文件
    • 2014-08-04 - WIP: 保存不工作的状态
    • 2014-08-03 - 使用 img.zoom() 而不是 "自用缩放"
    • 2014-08-03 - 不使用 self.root.update(),速度更快
    • 2014-08-03 - WIP: 使用 Tkinter 而不是 pygame?
    • 2014-08-03 - 生成包含字体信息的字典
    • 2014-08-03 - 将 display_cycle_interval() 移入 CPU
    • 2014-08-03 - 更新到新 API
    • 2014-08-03 - WIP: 在外围中分割字节/字
    • 2014-08-03 - 添加 TODO: 使用 PyGame event.scancode / Tkinter event.keycode 常量
    • 2014-08-03 - 在测试中也使用 auto_shift 参数。
    • 2014-08-02 - 注释中的 typo
    • 2014-08-02 - 添加有关 Dragon 键盘的信息
    • 2014-08-02 - 更大的字体 + 初始化显示 RAM 中的 Bugfix
    • 2014-08-02 - 使用 XRoar 颜色
    • 2014-08-02 - 限制输入队列
    • 2014-08-02 - 仅在按键按下后强制发送 '未按任何键'。
    • 2014-08-02 - Bugfix: 不要 sys.exit() 以避免 CPU 线程崩溃
    • 2014-08-02 - 添加有关可用 RAM 大小的信息
    • 2014-08-02 - Bugfix 一些按键映射
    • 2014-08-02 - Dragon 活着!
    • 2014-08-02 - 从一个全新的 pygame 显示类开始
    • 2014-08-02 - WIP: 字符输入
    • 2014-08-01 - 切换按键按下,以确保不会错过任何按键;)
    • 2014-08-01 - WIP: 基本上键盘输入似乎可以工作!!!
    • 2014-08-01 - WIP: 键盘输入
    • 2014-07-31 - 通过 memory_callbacks 显示 "键盘矩阵状态"
    • 2014-07-30 - 仅添加一些更多信息
    • 2014-07-30 - WIP: 将键盘输入到 PIA
    • 2014-07-30 - 添加有关 PIA 的信息
    • 2014-07-29 - WIP: PIA PDR
    • 2014-07-29 - WIP: PIA
    • 2014-07-29 - 在 CPU 中也使用位工具。
    • 2014-07-29 - 添加位操作周围的实用程序
    • 2014-07-28 - WIP: Dragon 输入
    • 2014-07-28 - 使用中央日志记录器
    • 2014-07-28 - WIP: 用户输入
    • 2014-07-28 - 重排代码
    • 2014-07-28 - 更好的输出;)
    • 2014-07-28 - Bugfix 退出 pygame
    • 2014-07-28 - 添加 ROM 下载脚本和 ROM 哈希。
    • 2014-07-27 - 为 travis 的快速解决方案
    • 2014-07-27 - 转换 dragon 字符映射
    • 2014-07-27 - WIP: 使用 D64 的 Dragon 文本模式
    • 2014-07-25 - WIP: Dragon 32 PIA / SAM
    • 2014-07-25 - 切割 PIA 内存信息
    • 2014-07-25 - 添加 Dragon32_test.py
    • 2014-07-24 - 将 Dragon 32 相关内容更新到新 API
    • 2014-07-24 - multiprocessing.JoinableQueue() -> multiprocessing.Queue()
    • 2014-07-24 - 更新控制台测试
    • 2014-07-24 - 重新实现 "--display-cycle"
    • 2014-07-24 - 处理双日志输出问题
    • 2014-07-24 - 更改 queue.get() 相关内容
    • 2014-07-24 - 删除概念文件
    • 2014-07-23 - 删除过时文本
    • 2014-07-23 - 使用全局日志
    • 2014-07-23 - 修复 unittest 中的 bug
    • 2014-07-23 - 修复 tk 版本中的 Multicomp6809 和 abc09 的 bug
    • 2014-07-23 - 在 Tk 中使用 Queue.Queue() 作为输出缓冲区
    • 2014-07-23 - 由于:yscrollcommand=scollbar.set 导致崩溃
    • 2014-07-23 - 使用 multiprocessing.JoinableQueue
    • 2014-07-23 - 添加名称
    • 2014-07-23 - 调用 cpu.quit()
    • 2014-07-23 - WIP: 合并总线读写线程。使用 thread.interrupt_main()
    • 2014-07-22 - WIP: KeyboardInterrupt
    • 2014-07-20 - WIP: sbc09 控制台
    • 2014-07-20 - 修复退出所有线程/进程的 bug
    • 2014-07-20 - 不要添加多于一个日志处理器
    • 2014-07-18 - 统一 "running" 相关内容
    • 2014-07-18 - 重命名多进程文件
    • 2014-07-18 - 减少调试日志
    • 2014-07-18 - 代码清理,使用 Simple6809Cfg 作为默认,添加 '--dont_open_webbrowser'
    • 2014-07-18 - WIP: Simple6809 正在运行
    • 2014-07-17 - 将 CPU 移入组件
    • 2014-07-17 - WIP: 分割概念代码
    • 2014-07-17 - WIP: 多进程概念 2
    • 2014-07-17 - WIP: 新的多进程概念
    • 2014-07-17 - 只重命名
    • 2014-07-17 - 在 Linux 下使用 multiprocessing,在 Windows 下使用 subprocess
    • 2014-07-17 - WIP: 使用 multiprocessing 启动 CPU
    • 2014-07-17 - 将 CPU HTTP 服务器移入单独的线程。
    • 2014-07-17 - bugfix
    • 2014-07-17 - Bugfix CPU 状态
    • 2014-07-16 - 删除循环相关内容并使用更多线程
    • 2014-07-16 - 重新计算 op 调用 burst_count
    • 2014-07-16 - 使用 pager 修复了该问题 ;)
    • 2014-07-16 - 使用 pager 获取用户输入。
    • 2014-07-16 - 删除未使用的代码
    • 2014-07-15 - 添加不带总线通信的 Simple6809 ROM 控制台版本
    • 2014-07-15 - 删除未使用的代码并更新 README
    • 2014-07-15 - 添加完整的 DAA unittest
    • 2014-07-15 - 完成 S-Records unittest
    • 2014-07-15 - 使用 HEX 计算器添加更多测试
    • 2014-07-15 - 显示输出是个好主意 ;)
    • 2014-07-15 - 添加 DAA 的 unittest
    • 2014-07-15 - 重构 DAA
    • 2014-07-15 - Bugfix DAA - TODO: 为它添加 unittests!
    • 2014-07-15 - 重新排序寄存器行
    • 2014-07-15 - 移动
    • 2014-07-15 - 创建类似于 XRoar 的 v09 跟踪。
    • 2014-07-14 - Bugfix sbc09 unittest 并添加更多 sbc09 测试
    • 2014-07-14 - WIP: 使用 sbc09 进行 unittests
    • 2014-07-14 - sbc09:使用破解脚本来创建内存信息
    • 2014-07-14 - WIP: 新的调用指令实现
    • 2014-07-14 - Bugfix:需要的,例如:在 sbc09 中
    • 2014-07-14 - 删除一些测试 assert 语句
    • 2014-07-14 - 在 unittests 中禁用输出
    • 2014-07-14 - 重命名一些指针
    • 2014-07-14 - Travis 应只测试 master 和 stable
    • 2014-07-13 - 删除加速 Simple6809 RAM 测试
    • 2014-07-13 - 禁用许多日志行
    • 2014-07-13 - 启动时设置 cc 标志比 Xroar 多
    • 2014-07-13 - 在 humanize.py 中合并一些代码
    • 2014-07-13 - 移动跟踪代码
    • 2014-07-13 - 删除未使用的内容
    • 2014-07-13 - 删除 "--compare_trace" 并更新 README
    • 2014-07-13 - Fix Travis
    • 2014-07-13 - 单元测试很无聊 ;)
    • 2014-07-13 - 删除区域调试并进行代码清理
    • 2014-07-13 - 使用 pypy 进行测试并禁用 coveralls
    • 2014-07-13 - Bugfix,使用其他地址(如果只有 1K RAM)
    • 2014-07-13 - 使用 BASIC 添加更多测试
    • 2014-07-13 - 添加一些 Dragon32 内存信息
    • 2014-07-13 - Bugfix ASR/LSR:第七位保持不变。使用 BASIC INT() 捕获
    • 2014-07-13 - 添加一些有效的测试
    • 2014-07-13 - 删除初始状态测试
    • 2014-07-13 - 更新TFR/EXG的unittest
    • 2014-07-13 - 添加BASIC浮点测试。
    • 2014-07-13 - Bug修复:TFR和EXG
    • 2014-07-13 - 添加sixxie和tormod
    • 2014-07-13 - Bug修复INC
    • 2014-07-12 - 将日志添加到文件
    • 2014-07-12 - 更好的内存信息
    • 2014-07-12 - 添加注释+错别字
    • 2014-07-12 - 更好的越界写入信息
    • 2014-07-12 - 添加doctest
    • 2014-07-12 - 更新测试启动
    • 2014-07-12 - Bug修复ADC... 最后的Bug???
    • 2014-07-11 - 添加"FP0_to_D"的工作测试
    • 2014-07-11 - 更好的调试,在调试行后添加地址信息
    • 2014-07-11 - 添加一些感谢...
    • 2014-07-11 - "激活" test_ACCD_to_FPA0()
    • 2014-07-11 - Bug修复if值 > $7fff
    • 2014-07-11 - 仅供开发者与BASIC解释器玩玩。
    • 2014-07-11 - 添加一些开发辅助批处理文件
    • 2014-07-11 - 清理BASIC09测试
    • 2014-07-11 - WIP:添加JSR $e778 "D to FPA0"的测试用例
    • 2014-07-11 - 添加特殊处理,如果值 == 0
    • 2014-07-11 - Bug修复BASIC09浮点实现,目前只有0失败。
    • 2014-07-08 - Bug修复开发启动
    • 2014-07-08 - WIP:使用BASIC浮点例程进行测试
    • 2014-07-08 - 默认禁用
    • 2014-07-08 - 更新开发工具
    • 2014-07-08 - 添加一个工作的BASIC浮点数字测试
    • 2014-07-08 - 合并"程序流程指令"
    • 2014-07-08 - 在HTML调试中添加调用编号和日期时间
    • 2014-07-07 - WIP:在BASIC浮点例程周围进行测试
    • 2014-07-07 - 删除调试内容并添加一个"debug.html"跟踪生成器
    • 2014-07-07 - 分割浮点累加器地址
    • 2014-07-07 - 使用pickle保存CPU状态
    • 2014-07-07 - 更新html指令生成脚本并添加html文件。
    • 2014-07-06 - WIP:将6809数据导出到html
    • 2014-07-06 - 禁用打开网络浏览器
    • 2014-07-06 - 添加内存回调功能
    • 2014-07-04 - 将RESET_VECTOR_VALUE添加到cfg
    • 2014-07-04 - 更新除法代码
    • 2014-07-04 - 在内存中添加测试ROL,ROR
    • 2014-07-04 - Bug修复CLI
    • 2014-07-04 - 增强脚本。
    • 2014-07-03 - 添加两个新的工作BASIC测试...
    • 2014-07-03 - 添加一些不工作的单元测试(已注释)
    • 2014-07-03 - Bug修复ASR并为它添加单元测试。
    • 2014-07-03 - 只移动到组
    • 2014-07-03 - .gitignore
    • 2014-07-03 - 在覆盖率运行后添加缺失的单元测试
    • 2014-07-03 - bash脚本运行测试并创建覆盖率报告
    • 2014-07-03 - 测试BASIC解释器是否工作!
    • 2014-07-03 - WIP:使用活动的BASIC解释器运行测试
    • 2014-07-03 - 更新cfg文件
    • 2014-07-03 - 在README中添加"创建覆盖率报告"
    • 2014-07-03 - 删除过时文件中的语法错误
    • 2014-07-03 - Bug修复覆盖率包名
    • 2014-07-03 - 在文件移动后更改所有包路径
    • 2014-07-03 - 将所有文件移动到dragonpy包目录中
    • 2014-07-03 - 添加包名
    • 2014-07-03 - 在travis cfg中添加coveralls
    • 2014-07-03 - 更新单元测试中的TODO信息
    • 2014-07-03 - 在README中添加coveralls.io状态图像
    • 2014-07-03 - 添加coveralls cfg
    • 2014-07-03 - 在README中添加单元测试信息
    • 2014-07-03 - 添加setup.py和travis cfg。
    • 2014-07-03 - 更好的"第一次调用"调试信息。
    • 2014-07-03 - 添加SUBA索引的单元测试
    • 2014-07-03 - 更新除法测试代码
    • 2014-07-02 - WIP:ea索引地址模式
    • 2014-07-02 - 显示CWAI未实现错误
    • 2014-07-02 - 更好的错误信息
    • 2014-07-02 - 重构TFR、EXG内容并添加单元测试
    • 2014-07-02 - 添加更多索引测试
    • 2014-07-02 - 添加第二个除法测试代码
    • 2014-07-02 - 添加单独的地址模式测试
    • 2014-07-02 - 将ST/LD分组并添加单元测试
    • 2014-07-02 - 删除注释:它是正确的
    • 2014-07-02 - 将所有未实现的操作移动
    • 2014-07-01 - bugfix EOR - TODO:添加对其的测试。
    • 2014-07-01 - 在更有趣的区域进行测试
    • 2014-07-01 - 添加ABX测试
    • 2014-07-01 - 重构ANDCC和ORCC
    • 2014-07-01 - 添加ORCC和ANDCC测试
    • 2014-07-01 - 更新示例输出
    • 2014-07-01 - 重新排序crc32测试
    • 2014-07-01 - 修复失败测试的Bug
    • 2014-07-01 - 更新crc32测试。现在工作正常!
    • 2014-07-01 - 禁用打印
    • 2014-07-01 - 移动/分组一些操作
    • 2014-07-01 - 修复ROR的Bug并添加单元测试
    • 2014-07-01 - WIP:添加crc32代码
    • 2014-06-30 - 添加除法代码测试
    • 2014-06-30 - WIP:6809 32/16除法测试
    • 2014-06-30 - 更好的调试输出
    • 2014-06-30 - 添加PSHU和PULU的单元测试
    • 2014-06-30 - 开始添加6809单元测试,使用小型汇编程序:crc16
    • 2014-06-30 - 修复Push/Pull单元测试的Bug
    • 2014-06-30 - 添加BLT和LBLT的单元测试
    • 2014-06-30 - 添加SBCA的单元测试
    • 2014-06-30 - 移动DEC测试
    • 2014-06-29 - 添加一些BASIC测试代码
    • 2014-06-29 - 分割/合并算术移位测试
    • 2014-06-29 - 统一:r & 0xff
    • 2014-06-29 - WIP dragon32
    • 2014-06-29 - 分割算术操作测试
    • 2014-06-29 - 注释调试输出
    • 2014-06-29 - 添加ADDD和DECA的单元测试
    • 2014-06-28 - 添加ROL测试
    • 2014-06-28 - 清理ADD并添加单元测试
    • 2014-06-28 - 不允许超出范围的内存写入
    • 2014-06-28 - 实现 BRN、BVC 和 BVS
    • 2014-06-28 - 修复 INC 并添加单元测试
    • 2014-06-28 - 添加 LSLA 单元测试
    • 2014-06-28 - 分割分支单元测试
    • 2014-06-28 - 代码清理并为CMP添加单元测试
    • 2014-06-27 - Simple6809也只使用1KB RAM。
    • 2014-06-27 - 添加用于复制粘贴.lst内容的脚本,例如:http://www.asm80.com/
    • 2014-06-27 - WIP CPU控制服务器
    • 2014-06-27 - 仅设置Multicomp6809的1KB RAM以加快启动速度。
    • 2014-06-27 - 添加NEG内存单元测试
    • 2014-06-27 - 更新NEG内存,TODO:添加测试
    • 2014-06-27 - 为update_HNZVC_8添加完整范围的单元测试
    • 2014-06-27 - 修复单元测试文件
    • 2014-06-27 - 修复NEGA和NEGB并更新单元测试
    • 2014-06-27 - 更新单元测试代码
    • 2014-06-27 - 更新累加器单元测试
    • 2014-06-26 - 添加ORA和ORCC单元测试
    • 2014-06-26 - 添加BPL和LBPL单元测试
    • 2014-06-26 - 修复 /debug/ 的Bug
    • 2014-06-26 - 添加LEAU和LDU单元测试
    • 2014-06-26 - 修复 TST 扩展的Bug
    • 2014-06-26 - 修复 TST 并添加单元测试
    • 2014-06-26 - 修复 BGE 的Bug
    • 2014-06-26 - 在README中添加 PRINT "HELLO" 的调试输出
    • 2014-06-25 - 添加另一个简单测试代码
    • 2014-06-25 - 添加一些进位标志测试
    • 2014-06-25 - 添加零标志测试
    • 2014-06-25 - 添加使用测试配置的测试代码
    • 2014-06-24 - WIP:通过POST请求打开DEBUG
    • 2014-06-24 - 移动测试 TODO:更新所有
    • 2014-06-24 - 更好的 "第一次调用:" 信息行。
    • 2014-06-24 - 创建到ROM文件的绝对路径。
    • 2014-06-24 - 添加关于ROM的信息
    • 2014-06-24 - 一些清理
    • 2014-06-24 - README更新
    • 2014-06-23 - 更改复位调试输出
    • 2014-06-23 - 快速修改以添加Grant的Multicomp 6809 ROM。
    • 2013-10-31 - 在dragon周期/更新调用中有什么问题??!
    • 2013-10-31 - 提交当前状态
    • 2013-10-31 - 插入TODOs更新README
    • 2013-10-31 - 重构
    • 2013-10-30 - 合并外围代码
    • 2013-10-30 - 如果Pygame未安装则退出
    • 2013-10-30 - 实现 MUL
    • 2013-10-30 - 重命名 basic.doc -> basic.txt
    • 2013-10-30 - Bugfix:flush不存在
    • 2013-10-30 - 截断跟踪信息中的长行
    • 2013-10-29 - "重定向"使用输入到nirvana
    • 2013-10-29 - 添加一个简单的控制台,以便在没有TKinter的情况下运行
    • 2013-10-29 - 如果TKinter不可用,则忽略
    • 2013-10-29 - 添加 cfg.BURST_COUNT
    • 2013-10-29 - 程序退出时显示错误信息
    • 2013-10-29 - 更新并删除日志输出
    • 2013-10-29 - 禁用许多日志输出
    • 2013-10-28 - 添加关于当前性能的备注
    • 2013-10-28 - 禁用自动测试命令
    • 2013-10-28 - 程序退出时不抛出跟踪异常
    • 2013-10-28 - pygame, numpy 不是每个配置都需要
    • 2013-10-28 - 在README中添加链接
    • 2013-10-28 - 在生成Creole文件中手动修改
    • 2013-10-28 - 添加由脚本生成的abc09.creole
    • 2013-10-28 - 在Makefile中添加"clean"并删除所有构建的文件
    • 2013-10-28 - 仅应用自动格式化
    • 2013-10-27 - 添加更多测试代码
    • 2013-10-27 - 转换字符以显示,为什么?
    • 2013-10-27 - 在跟踪差异时停用"sys exit"操作
    • 2013-10-27 - 实现SEX
    • 2013-10-27 - 添加update_HNZVC_16()函数
    • 2013-10-27 - 对比跟踪的更改
    • 2013-10-27 - 更新半进位,尽管H通常是"未定义"的
    • 2013-10-27 - 添加一个用于与sbc09创建短跟踪的修改过的脚本
    • 2013-10-27 - 添加修改过的scb09跟踪比较
    • 2013-10-27 - 所有调用使用字典
    • 2013-10-27 - Bugfix CMP:更新半进位标志。
    • 2013-10-27 - 打印跟踪信息
    • 2013-10-27 - 重命名README.doc -> README.txt
    • 2013-10-27 - 仅应用自动格式化
    • 2013-10-27 - 添加Lennart Benschop 6809的相关内容(根据GPL发布)
    • 2013-10-26 - 实现 DAA、EXG 并修复 LSR 的错误
    • 2013-10-26 - 错误修复:激活日志记录较晚
    • 2013-10-26 - 错误修复:数据中的EXG需要后字节
    • 2013-10-26 - 添加当前示例
    • 2013-10-26 - 显示键盘事件
    • 2013-10-26 - 添加一些信息
    • 2013-10-26 - 添加"复制到剪贴板"功能
    • 2013-10-25 - 减少调试输出
    • 2013-10-25 - 添加 LSL 单元测试
    • 2013-10-25 - 添加 ANDA 单元测试
    • 2013-10-25 - 添加包含原始 ROM 中的例程的单元测试
    • 2013-10-24 - 排除导入(串行尚未工作)
    • 2013-10-24 - 更新一些 CC 处理。
    • 2013-10-24 - 添加 CC 单元测试(DEC)并更新其他测试
    • 2013-10-24 - 添加 CC 单元测试(INC)
    • 2013-10-24 - Bugfix SUB 并添加 SUB 和 CC 标志的工作单元测试
    • 2013-10-24 - 使用 ADDA 的第一个真正工作的 CC 测试
    • 2013-10-24 - 添加滚动条和自动滚动到末尾
    • 2013-10-23 - 显示第一次调用
    • 2013-10-23 - Bugfix:仅在未设置之前设置 CC 标志
    • 2013-10-23 - 如果之前有错误,则不要抛出,并显示更好的调试消息
    • 2013-10-22 - 更好的 Tk 窗口
    • 2013-10-22 - 单元测试的一些更新
    • 2013-10-22 - 更好的跟踪比较
    • 2013-10-22 - 使用 XRoar CC 代码
    • 2013-10-22 - 更新导出的 6809 数据
    • 2013-10-21 - 捕获值
    • 2013-10-21 - 添加 CC 测试。
    • 2013-10-21 - 修改调试输出
    • 2013-10-21 - 更新单元测试
    • 2013-10-21 - 添加 --area_debug_cycles
    • 2013-10-21 - 合并 SUB8 和 SUB16
    • 2013-10-21 - 实现 BGE 和 BLT
    • 2013-10-21 - 错误修复地址模式
    • 2013-10-21 - 自动发送 BASIC 行以进行测试
    • 2013-10-21 - 使用 delimiter=';'
    • 2013-10-21 - 使用 csv 模块进行导出
    • 2013-10-21 - 更新 README 中的状态
    • 2013-10-21 - 实现 ANDCC
    • 2013-10-21 - 错误修复获取 ea+m DIRECT
    • 2013-10-21 - TST 需要 mem
    • 2013-10-21 - 添加新的 csv
    • 2013-10-21 - 添加未记录的 RESET 操作码 0x3e
    • 2013-10-21 - 数据更新
    • 2013-10-21 - 移除堆栈指针检查的相关内容
    • 2013-10-21 - 从 get_ea_indexed() 获取更多调试信息
    • 2013-10-21 - 移除内部推送/拉动检查
    • 2013-10-21 - 新 6809 数据的更新
    • 2013-10-21 - Bugfix TFR、JSR 数据
    • 2013-10-21 - 如果写入内存则 ea 是必需的
    • 2013-10-21 - * "needs_ea" 对于所有操作并不相同
    • 2013-10-21 - 所有分支指令的 needs_ea
    • 2013-10-21 - 添加 "needs_ea"
    • 2013-10-21 - 将 "operand" 重命名为 "register"
    • 2013-10-21 - 删除 "addr mode" 寄存器和堆栈
    • 2013-10-21 - 为 "从内存读取" 信息进行手动更改
    • 2013-10-21 - 将 HNZVC 信息从指令移动到操作码
    • 2013-10-21 - 添加关于 read_from_memory 的注释
    • 2013-10-20 - 开始使用新的数据。尚未准备就绪。
    • 2013-10-20 - 将 "-" 更改为 None
    • 2013-10-20 - 生成新的操作码信息文件
    • 2013-10-20 - 与现有信息合并
    • 2013-10-19 - 也美化了结果。
    • 2013-10-19 - 尝试以新的方式收集所有数据。
    • 2013-10-19 - 添加缺失的指令
    • 2013-10-18 - 添加操作信息
    • 2013-10-17 - TODO:更改 6809 数据 py
    • 2013-10-17 - 长分支始终为 MEM_ACCESS_WORD
    • 2013-10-17 - push/pull 的更多信息
    • 2013-10-17 - 实现 BGT
    • 2013-10-17 - 停止在无限循环中合并代码
    • 2013-10-17 - get_indexed_ea() 中的错误修复
    • 2013-10-17 - 堆栈计数检查中的错误修复
    • 2013-10-17 - 添加向量信息
    • 2013-10-17 - 如果内存信息不活动,则提供信息
    • 2013-10-17 - 支持 Backspace
    • 2013-10-17 - 更好的方法来使文本框 "只读"
    • 2013-10-17 - * 实现 ABX, ASR, BLE, EOR, LSR, NOP, ROR, SBC, SUB16
    • 2013-10-16 - 添加不工作的 CC 半进位测试
    • 2013-10-16 - 在内存写入中显示字符
    • 2013-10-16 - 错误修复缺失的属性
    • 2013-10-16 - 添加检查
    • 2013-10-16 - 错误修复 ORCC 和 ROL
    • 2013-10-16 - 实现 OR
    • 2013-10-16 - 错误修复 EOF 如果 XRoar 日志文件
    • 2013-10-16 - 实现 ADDD
    • 2013-10-16 - 添加内部堆栈推/拉计数器及其检查
    • 2013-10-16 - 更好的 Tk 东西:一个字符一个字符地发送回来
    • 2013-10-16 - 更新 CC
    • 2013-10-16 - 错误修复 TST
    • 2013-10-16 - BSR 和 JSR 的代码合并
    • 2013-10-16 - 重命名半进位方法
    • 2013-10-16 - 如果值超出范围,则减少调试
    • 2013-10-16 - Split Simple6809Periphery 和一个简单的 Tk GUI
    • 2013-10-16 - 从 ORCC 中移除 raise
    • 2013-10-16 - 错误修复 push/pull
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-16 - 更好的错误处理
    • 2013-10-12 - 修复漏洞:仅使用 Dragon 32 的漏洞跟踪
    • 2013-10-12 - 添加虚拟 RS232 方法
    • 2013-10-12 - 在错误消息中添加地址
    • 2013-10-12 - 将内存访问记录为信息
    • 2013-10-12 - 修改 Simple6809 RAM 测试的加速漏洞
    • 2013-10-12 - 修复漏洞:仅使用 Dragon 32 的漏洞跟踪
    • 2013-10-12 - 在 XRoar 跟踪行中插入 CC
    • 2013-10-12 - 在 PAGE1/2 操作中使用 sam 属性而不是 XRoar
    • 2013-10-12 - 在 PIA/SAM 中的 TODOs 使用 debug.error
    • 2013-10-12 - 为 Dragon 特殊 RAM 初始化
    • 2013-10-12 - 修复 pull_word() 漏洞(例如 RTS)
    • 2013-10-12 - 修复 BLS 漏洞
    • 2013-10-12 - 修复 LEA 漏洞
    • 2013-10-11 - 更好的 .csc 导出输出 op码
    • 2013-10-11 - 修复 unittest
    • 2013-10-10 - 添加修改后的漏洞跟踪:xroar 跟踪比较
    • 2013-10-10 - 修复 BEQ 漏洞
    • 2013-10-10 - 修复索引寻址模式中的漏洞
    • 2013-10-10 - 修复 PIA 中的初始化值
    • 2013-10-10 - 将重置调用添加到调试输出
    • 2013-10-10 - 合并读取 pc 字节/字方法
    • 2013-10-10 - 修复日志输出:显示 PC 而不是 ea ;)
    • 2013-10-10 - 修复 STA/STB 和 CC 更新
    • 2013-10-10 - 调试 CC 寄存器
    • 2013-10-10 - 调整 --verbosity=20 输出以类似于 XRoar -trace
    • 2013-10-10 - 实现 "--max" 命令行参数
    • 2013-10-09 - 在 CLI 中添加 "--area_debug_active"
    • 2013-10-09 - 重用现有的命令行参数
    • 2013-10-09 - 实现 ADC 和 BSR
    • 2013-10-09 - 在读取/写入内存外部时返回 0x0
    • 2013-10-09 - 分割内存信息
    • 2013-10-09 - 添加 unittest
    • 2013-10-09 - 提交 CC 的想法
    • 2013-10-09 - 更新 CPU 以支持新的 MC6809_data_raw
    • 2013-10-09 - 更新 6809 数据
    • 2013-10-09 - 更新 CC 寄存器
    • 2013-10-08 - 添加 CC.H 和 CC.C 的测试,但似乎不正确?!
    • 2013-10-08 - 更新 unittest,使其可运行
    • 2013-10-07 - 修复 COM 漏洞
    • 2013-10-07 - 将 CLI 示例添加到 README 中
    • 2013-10-07 - 修复:这是正确的位置
    • 2013-10-07 - 重命名 ;)
    • 2013-10-07 - 修复:去除校验和 ;)
    • 2013-10-07 - 提交当前状态:* 分离字节/字调用 * 使用结构体发送从外围设备发送到内存的响应 * 从 cpu 模块中分离内存 * 从 Simple6809Periphery 开始
    • 2013-10-07 - * 支持比 Dragon 设置更多的设置。 * 开始添加 Simple6809 支持
    • 2013-10-06 - 使用总线进行剩余操作
    • 2013-10-06 - 使用 reset() 设置 CC F&I 和初始化 PC
    • 2013-10-06 - 开始实施 SAM
    • 2013-10-06 - 实现对 PAGE1/2 操作码的支持
    • 2013-10-06 - 删除旧代码
    • 2013-10-06 - 实现 CMP8 和 CMP16
    • 2013-10-06 - 开始实现 PIA0 和 PIA1
    • 2013-10-06 - 将初始 PC 设置为 RESET_VECTOR == 0xb3b4
    • 2013-10-06 - 实现 LEAS、LEAU 和 LEAX、LEAY
    • 2013-10-06 - 将堆栈指针起始值设置为 0xffff
    • 2013-10-06 - * 回绕 8/16 位寄存器值
    • 2013-10-06 - 将 S 撤回到对象:因此它与其他寄存器对象的 API 相同
    • 2013-10-06 - 在所有地方添加 "m" 参数
    • 2013-10-06 - * 实现 LSL / ROL
    • 2013-10-06 - 实现 BMI、BPL
    • 2013-10-06 - 更新 unittests(正在进行中)
    • 2013-10-06 - * 实现 JSR
    • 2013-10-06 - 实现条件分支 BLO/BCS/LBLO/LBCS 和 BHS/BCC/LBHS/LBCC
    • 2013-10-06 - 修复直接字节 - TODO:直接字
    • 2013-10-06 - 实现 ST16 和修复 ST8
    • 2013-10-06 - 重新格式化 DocString
    • 2013-10-05 - 实现 BRA/LBRA
    • 2013-10-04 - 在循环之前停止
    • 2013-10-04 - 添加一些 PIA / SAM 虚拟响应
    • 2013-10-04 - 修复 BNE 和 JMP
    • 2013-10-03 - 添加 LDA、LDB、STA、STB 和 LDD 的 unittest
    • 2013-10-03 - 修复地址方法中的 m <-> ea 不匹配
    • 2013-10-03 - * 实现 ADD8
    • 2013-10-03 - 添加低级寄存器测试
    • 2013-10-03 - 删除一些初始化调试消息
    • 2013-10-02 - 开始实现 SUB8
    • 2013-10-02 - * 修复 bug:区分 ea 和内存内容 * 实现 NEG 内存
    • 2013-10-02 - 如果软开关不存在,则显示更好的错误信息
    • 2013-10-01 - 开始实现 NEG,但似乎存在 bug :(
    • 2013-10-01 - 删除许多启动调试输出
    • 2013-10-01 - 为 ConditionCodeRegister 添加名称,以实现统一的 API
    • 2013-10-01 - 修复缺少 API 更新的问题
    • 2013-10-01 - 重新实现 TFR
    • 2013-10-01 - 实现 TST
    • 2013-10-01 - * 实现 BEQ * 在 BNE 中使用相同的调试输出
    • 2013-10-01 - 实现 BIT
    • 2013-10-01 - 实现 BNE
    • 2013-10-01 - 实现 "相对"寻址模式
    • 2013-09-30 - 添加一个测试
    • 2013-09-30 - 检查内存值并使 'end' 可选
    • 2013-09-30 - 实现 INC
    • 2013-09-30 - 不要将溢出标志设置回 0
    • 2013-09-24 - 重新实现 LD8
    • 2013-09-24 - 实现 DEC
    • 2013-09-24 - 使用新的骨架
    • 2013-09-24 - * 不要拆分指令
    • 2013-09-24 - * 拆分 COM * 实现 COM
    • 2013-09-24 - * 合并累加器/CC 代码 * 所有寄存器都是具有 get()/set() 方法的对象 * 在骨架类中留下未实现的方法 * 重新实现 JMP、LD16、ST8
    • 2013-09-24 - 标记 8 位 CC 更新方法
    • 2013-09-24 - 重命名 CC 调用
    • 2013-09-23 - 开始 LD16:待办事项:操作数应该是一个具有 get/set 方法的对象!
    • 2013-09-23 - 实现 JMP
    • 2013-09-23 - 插入生成的代码
    • 2013-09-23 - 大修复 ;)
    • 2013-09-23 - 更改 CSV 数据
    • 2013-09-23 - 在 "addr_mode" 中使用变量
    • 2013-09-23 - 重命名 dir
    • 2013-09-23 - * 在大多数情况下插入 'cc update' 调用 * 更好的 DocString * 如果需要,则更改函数签名 *
    • 2013-09-23 - * 拆分 LEA * 将 cc 位信息移动到 INSTRUCTION_INFO
    • 2013-09-23 - 添加简单的 CSV 导出
    • 2013-09-23 - 也可以使用第一部分和最后一部分来链接
    • 2013-09-23 - 重新实现骨架制作脚本
    • 2013-09-23 - * 将周期/字节数转换为整数 * 合并 PAGE 和 SWI
    • 2013-09-20 - 合并信息,当前结果是 MC6809_data_raw.py
    • 2013-09-20 - 添加破解的 6809 数据抓取脚本。
    • 2013-09-19 - 不要使用具有访问方法的属性...
    • 2013-09-19 - * 修复 NEG bug * 停止在软开关中
    • 2013-09-19 - * 支持所有寻址模式中的 JMP、NEG * 在 Memory 类中增加周期
    • 2013-09-19 - * 将内存访问方法更改为属性,以便与寄存器访问统一 * 合并 COM 操作
    • 2013-09-19 - COM
    • 2013-09-19 - 添加到 TODO ;)
    • 2013-09-19 - 统一的调试输出
    • 2013-09-18 - * 将累加器移动到单独的对象中
    • 2013-09-18 - 从 6309 中删除寄存器并添加一些链接。
    • 2013-09-17 - * 添加 LD 8 位从内存中加载寄存器 * 将 CC 片段移动到单独的模块中
    • 2013-09-17 - 添加 "LD 16 位从内存中加载寄存器" 并与 ST16 合并代码
    • 2013-09-17 - 检查操作是否只定义了一次
    • 2013-09-17 - 将累加器 D、W 和 Q 作为属性
    • 2013-09-17 - 添加 ST 16 位将寄存器存储到内存中
    • 2013-09-17 - 添加一些 8 位算术运算
    • 2013-09-17 - 调试写入文本屏幕地址
    • 2013-09-17 - 添加 LSR
    • 2013-09-17 - 添加 ORA
    • 2013-09-17 - 修复索引寻址模式
    • 2013-09-16 - 添加 BNE
    • 2013-09-16 - 使当前操作码类更广泛。处理操作码列表
    • 2013-09-16 - FIXME:word 和 signed8 ???
    • 2013-09-16 - 添加版权声明
    • 2013-09-16 - 将 if...elif 转换为字典访问
    • 2013-09-16 - 添加 LEAX 索引
    • 2013-09-16 - 添加索引寻址模式,但需要测试
    • 2013-09-16 - 简短的调试输出
    • 2013-09-16 - 在非法操作时停止
    • 2013-09-15 - 小端或大端??!?!?
    • 2013-09-12 - 添加更多链接
    • 2013-09-12 - 合并代码
    • 2013-09-12 - 在详细模式下更好地输出 unittest
    • 2013-09-11 - 显示更多内存信息
    • 2013-09-11 - 添加 ADDA 扩展、CMPX 扩展和 JSR 扩展
    • 2013-09-11 - 修复 ROM/RAM 大小
    • 2013-09-11 - 修改大小,但:http://archive.worldofdragon.org/phpBB3/viewtopic.php?f=5&t=4363
    • 2013-09-11 - 在配置类中添加 print_debug_info() 函数
    • 2013-09-11 - 更多信息
    • 2013-09-11 - 添加操作码 0x00 NEG 直接
    • 2013-09-11 - 设置操作中的周期
    • 2013-09-11 - 添加 JMP
    • 2013-09-11 - 重命名 CC 标志
    • 2013-09-11 - 激活 pygame 显示
    • 2013-09-11 - 设置日志记录
    • 2013-09-11 - 将 STACK_PAGE 和 RESET_VECTOR 移入 cfg
    • 2013-09-11 - 删除 read_word_bug() 函数
    • 2013-09-11 - 已废弃
    • 2013-09-10 - 清理并开始实现 6809 CPU
    • 2013-08-29 - 更新 configs.py
    • 2013-08-27 - 添加一些链接
    • 2013-08-27 - 分支并重命名一些文件,更改一些设置...但最终会成为 Dragon 32 模拟器吗?
    • 2013-03-08 - 添加关于我使用的精确 pip 和 brew 命令的说明
    • 2013-03-08 - 改进了高分辨率颜色,修复了非 ASCII 键崩溃,修复了与较晚的 pygame/numpy 兼容的问题
    • 2012-07-23 - 在 README 中明确提及许可证
    • 2012-07-23 - 提到 numpy 需求
    • 2012-07-23 - 添加 MIT 许可证
    • 2012-07-23 - 将 README 作为 Markdown 处理
    • 2012-04-18 - 使 applepy.py 可执行
    • 2011-10-01 - 添加 --pc 开关以在特定程序计数器处启动运行
    • 2011-10-01 - 在构造函数中初始化显示状态变量
    • 2011-08-21 - 添加控制台控制工具
    • 2011-08-21 - 在控制请求中实现向 /memory 的 POST
    • 2011-08-20 - 控制通道现在是 HTTP/REST/JSON
    • 2011-08-20 - 为更好的 select() 兼容性,向 ControlHandler 添加 fileno() 方法
    • 2011-08-20 - 显示指令字节
    • 2011-08-20 - 在控制通道上重新实现反汇编器
    • 2011-08-20 - 添加内存转储命令
    • 2011-08-20 - 重构控制命令处理
    • 2011-08-19 - 开始 cpu 核心控制通道
    • 2011-08-19 - 如果 cpu 核心退出则优雅地关闭
    • 2011-08-19 - 如果 cpu 模块未启动则放弃启动
    • 2011-08-19 - 将 --ui 开关重命名为 --bus
    • 2011-08-18 - 以二进制模式打开内存文件
    • 2011-08-18 - 更新 curses UI 以支持套接字通信
    • 2011-08-18 - 使用套接字进行通信而不是 stdio
    • 2011-08-19 - 通过 GitHub 编辑 README
    • 2011-08-19 - 在 README 中提及最小 applepy_curses.py
    • 2011-08-16 - 尝试跳到磁带的 数据 部分
    • 2011-08-16 - 完成 拟声带 支持
    • 2011-08-16 - 拟声带输入的初始版本
    • 2011-08-14 - 将 CPU 核心和 UI 进程分开
    • 2011-08-15 - 删除未使用的导入
    • 2011-08-15 - 调整扬声器样本长度以允许前沿
    • 2011-08-15 - 使选项...嗯...可选参数到 Memory,以便测试通过
    • 2011-08-15 - 命令行选项:--rom, --ram, --quiet
    • 2011-08-15 - 将左右箭头键映射到 ^H/^U
    • 2011-08-15 - 向文本模式添加闪亮属性
    • 2011-08-15 - 将扬声器缓冲区播放移入 Speaker 类
    • 2011-08-15 - 实现 扬声器;这不是一个坏恶作剧 :-)
    • 2011-08-15 - 为测试传递 None 以运行测试
    • 2011-08-15 - 重构内存访问以便可以传递周期
    • 2011-08-14 - 实现 周期计算(除了页面边界跨越)
    • 2011-08-14 - 添加关于似乎给出正确结果的实现的说明
    • 2011-08-14 - 更多关于为什么基于内存的 ASL、DEC、INC、LSR、ROL 和 ROR 取得它们的值的理解
    • 2011-08-14 - 解析 STA 似乎是一个例外的原因
    • 2011-08-14 - 更新说明,修复了网页上似乎出现的错误
    • 2011-08-14 - 周期说明中的错别字和格式修正
    • 2011-08-14 - 周期时间说明
    • 2011-08-14 - 添加 test_run 以在无 UI 事件处理的情况下运行 CPU 通过内存片段(用于自动测试)
    • 2011-08-14 - 改进了彩色,以获得更好的白色
    • 2011-08-13 - 修复了缺失的self
    • 2011-08-13 - 重新设计了内存结构,使RAM成为ROM的子类,并添加了write_byte
    • 2011-08-13 - 空白字符的细节
    • 2011-08-13 - 将load_file添加到RAM
    • 2011-08-13 - 更新了README的致谢和状态
    • 2011-08-13 - 实现了HIRES彩色
    • 2011-08-13 - 使用预生成的字符位图进行文本模式
    • 2011-08-13 - 基于ghewgill的代码添加了HIRES图形支持:[链接](https://github.com/ghewgill/applepy/commit/5aa8ca2caa82cacdae08d0ffdbab2083b0f4c7a1)
    • 2011-08-13 - 总是绘制扫描行之间的空间
    • 2011-08-13 - 在混合模式下,假设监视器是彩色的
    • 2011-08-13 - 将update_text和update_lores重构为单个方法
    • 2011-08-13 - 显示字符的全宽度
    • 2011-08-13 - 字符的高度实际上是8而不是9
    • 2011-08-13 - 实现了LORES图形
    • 2011-08-13 - 使显示可选(用于测试)
    • 2011-08-13 - 在内存重构后重新使测试工作
    • 2011-08-13 - 移植到pygame并添加了位精确的字符
    • 2011-08-07 - 如果向文本屏幕行组3写入,则跳过而不是抛出异常
    • 2011-08-07 - 更新README以反映状态和致谢
    • 2011-08-07 - 在索引寻址模式中不将索引视为有符号数(感谢ghewgill)
    • 2011-08-07 - 一致的空白字符
    • 2011-08-07 - 将内存处理拆分为RAM、ROM和软开关的独立类
    • 2011-08-07 - 添加了解码器,在转储模式下启用
    • 2011-08-07 - 不允许写入ROM区域(这导致][+ ROM在启动时挂起)
    • 2011-08-07 - 修复了指令调度表中zero_page_y_mode的错别字
    • 2011-08-07 - 修复了dump()函数以便它正常工作(在取消注释的情况下)
    • 2011-08-07 - 修复了指令表中的错别字
    • 2011-08-07 - 简化adc和sbc中的有符号值计算
    • 2011-08-07 - 只需要分配64k的内存
    • 2011-08-07 - 如果curses无法将字符写入屏幕,则跳过它;修复了#1
    • 2011-08-07 - 改进了跨页面边界的间接寻址的模拟,包括索引间接寻址
    • 2011-08-07 - 添加了单元测试
    • 2011-08-07 - 修复了BVS中的错误
    • 2011-08-07 - 空白字符的细节
    • 2011-08-07 - 正确使用0和1而不是False和True作为标志
    • 2011-08-06 - 实现了非累加器版本的ROR
    • 2011-08-06 - 修复了SBC中逆用进位的错误
    • 2011-08-06 - 结果显示PLA确实会影响NZ
    • 2011-08-06 - 将load重命名为load_file,添加了从字节列表加载内存的load,并重构了加载代码
    • 2011-08-06 - 模拟6502中的间接模式错误
    • 2011-08-06 - 根据2006/2007代码重新实现了CMP、CPX和CPY
    • 2011-08-06 - 根据2006/2007代码重新实现了ADC和SBC
    • 2011-08-06 - 显然PLA不影响NZ标志
    • 2011-08-06 - 一点简单的简化
    • 2011-08-06 - 清理了ASL的实现
    • 2011-08-06 - TSX更新NZ标志
    • 2011-08-06 - 修复了多余的注释
    • 2011-08-06 - 提取了堆栈的拉出/推入
    • 2011-08-06 - 将标志重构为状态字节及其反向
    • 2011-08-06 - 稍微重构了update_nz和update_nzc
    • 2011-08-06 - 实现了BRK和RTI
    • 2011-08-06 - 进一步利用寻址模式的重构
    • 2011-08-06 - 添加了zero_page_y_mode
    • 2011-08-06 - 添加了zero_page_x_mode的环绕
    • 2011-08-06 - 重构了寻址模式代码
    • 2011-08-06 - 添加了if name == "main"以测试主程序
    • 2011-08-06 - 根据2006年的代码简化了屏幕地址到列/行转换
    • 2011-08-06 - 从2001年代码的初始更新

链接

| 论坛 | http://forum.pylucid.org/ | | IRC | #pylucid on freenode.net | | Jabber | pylucid@conference.jabber.org | | PyPi | pypi.org/project/DragonPyEmulator/ | | Github | github.com/jedie/DragonPy |

捐赠

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

dragonpyemulator-0.9.3.tar.gz (1.4 MB 查看散列值)

上传时间 源代码

构建分发

DragonPyEmulator-0.9.3-py3-none-any.whl (1.3 MB 查看散列值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面