4 个版本
0.2.1 | 2019年5月3日 |
---|---|
0.2.0 | 2019年5月2日 |
0.1.1 | 2019年3月17日 |
0.1.0 | 2019年3月16日 |
#155 在 模拟器
每月21次下载
125KB
3K SLoC
Zeerust
某种东西——一个字符设计、一个建筑,或者任何东西——曾经是某人关于未来的想法。
Zeerust 是一个完全用 Rust 编写的 Z80 模拟器。它包含解析 Z80 指令、执行符号表示和连接输入输出设备的功能模块。
还有一个二进制文件,可以将写入 OUT (0)
的任何字节打印到 stdout。
请查看 tests/
目录以获取一些示例程序和用法!
调试
在调试模式下编译时将提供调试输出
$ target/debug/zeerust tests/zeerust.bin
DEBUG - Running LD8(Reg(A), Immediate(90))
DEBUG - A: 00, B: 00, C: 00, D: 00, HL: 0000, F: 00000000, PC: 00
DEBUG - Running OUT(Reg(A), Immediate(0))
DEBUG - A: 5a, B: 00, C: 00, D: 00, HL: 0000, F: 00000000, PC: 02
DEBUG - Running LD8(Reg(A), Immediate(69))
DEBUG - A: 5a, B: 00, C: 00, D: 00, HL: 0000, F: 00000000, PC: 04
DEBUG - Running OUT(Reg(A), Immediate(0))
DEBUG - A: 45, B: 00, C: 00, D: 00, HL: 0000, F: 00000000, PC: 06
DEBUG - Running OUT(Reg(A), Immediate(0))
DEBUG - A: 45, B: 00, C: 00, D: 00, HL: 0000, F: 00000000, PC: 08
DEBUG - Running LD8(Reg(A), Immediate(82))
DEBUG - A: 45, B: 00, C: 00, D: 00, HL: 0000, F: 00000000, PC: 0a
DEBUG - Running OUT(Reg(A), Immediate(0))
DEBUG - A: 52, B: 00, C: 00, D: 00, HL: 0000, F: 00000000, PC: 0c
DEBUG - Running LD8(Reg(A), Immediate(85))
DEBUG - A: 52, B: 00, C: 00, D: 00, HL: 0000, F: 00000000, PC: 0e
DEBUG - Running OUT(Reg(A), Immediate(0))
DEBUG - A: 55, B: 00, C: 00, D: 00, HL: 0000, F: 00000000, PC: 10
DEBUG - Running LD8(Reg(A), Immediate(83))
DEBUG - A: 55, B: 00, C: 00, D: 00, HL: 0000, F: 00000000, PC: 12
DEBUG - Running OUT(Reg(A), Immediate(0))
DEBUG - A: 53, B: 00, C: 00, D: 00, HL: 0000, F: 00000000, PC: 14
DEBUG - Running LD8(Reg(A), Immediate(84))
DEBUG - A: 53, B: 00, C: 00, D: 00, HL: 0000, F: 00000000, PC: 16
DEBUG - Running OUT(Reg(A), Immediate(0))
DEBUG - A: 54, B: 00, C: 00, D: 00, HL: 0000, F: 00000000, PC: 18
DEBUG - Running HALT
DEBUG - A: 54, B: 00, C: 00, D: 00, HL: 0000, F: 00000000, PC: 1a
ZEERUST%
待办事项
- 加载寄存器
- 算术(8位)
- 指令解析
- 其他操作!
- CALL/RET
- 跳转/循环
- 8位位操作
- 输入/输出
- 16位算术
- 中断
- BCD 支持(
DAA
) - 内存映射
- ZX Spectrum 或 TI83 图形仿真
- 调试器
- ???
让我看看!
cargo install --path .
zeerust tests/zeerust.bin
ZEERUST%
依赖
~2–10MB
~100K SLoC