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次下载

Apache-2.0

125KB
3K SLoC

crates.io docs.rs Build Status codecov

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