#模拟器 #8080

bin+lib i8080emulator

适用于第三方平台使用的 Intel 8080 CPU 全仿真库

1 个不稳定版本

0.1.0 2023 年 7 月 25 日

#223 in 模拟器

MIT 许可证

65KB
2K SLoC

Rust 1K SLoC // 0.0% comments Assembly 708 SLoC // 0.1% comments

使用 Rust 实现 Intel 8080 CPU 全仿真。

为了验证仿真器是否正常工作,请在路径 diagnosis_program/ 下运行 cpudiag 程序。我还修改了汇编代码以避免写入 ROM 的需要。

此库旨在在不同的平台上重用:macOS、iOS、Android 和(如果可能)Web。

FFI 设计旨在易于理解和使用。

此库最重要的部分是提供一个 CPU 实例,其中提供了所有功能(CPU、RAM、IO)。

如果我们查看 emulator.h 头文件中的接口,我们可以看到

  • Cpu8080 不透明结构,我们获得对其的指针,在应用程序平台上传递它,并将其返回到此库进行解释。例如,查看 run 方法
  • IoCallbacks 结构,顾名思义,这是用于 IO 交互的,例如,我们需要从/写入外围设备,每次 CPU 发出 IO 请求时,我们需要一种方式回到我们的设备。
  • 中断,我们模拟从外部世界接收中断的方式,中断总是异步发生的,可以使用 mpsc 通道来完成此目的,CPU 是接收者,发送者应由平台拥有。
  • 暂停/恢复执行,类似于处理中断,应使用 mpsc,但需要一些额外的注意事项
    • 为了接收暂停请求,我们以非阻塞方式检查请求(活跃状态)
    • 为了接收恢复请求,我们以阻塞方式检查请求(空闲状态)

如何使用

要使用此库进行应用程序开发,只需构建并复制静态库 libemulator.a,并将 emulator.h 头文件包含到您的项目中。

由该库提供动力的应用程序

无运行时依赖

功能