首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于

MartyPC – 周期精确的 IBM PC/XT 仿真器

2026-09-16 1 阅读 约7分钟阅读 yitchelle
分享:
字号:
MartyPC 是早期 IBM PC 及其兼容机的模拟器。它支持 Windows、Linux 和 macOS。单击此处访问 MartyPC 用户指南 可以通过定期发布版本获得版本。对于每个工作流运行,可以通过“工件”下的“操作”选项卡进行更新的自动构建。 (您需要登录 GitHub 才能下载 Artifacts)。如果您不在 Windows 上,或者您想要最新的前沿版本,则需要从源代码构建 MartyPC。最新发布版本:0.4.1 当前开发版本:0.5.0 有关构建说明,请参阅 MartyPC Wiki 上的构建 MartyPC 指南。 MartyPC 最初是作为一个业余爱好项目,看看我是否可以在学习 Rust 编程语言的同时从头开始编写一个模拟器。我最初对 MartyPC 的目标并不高,但它已经达到了我从未想象过的功能水平。 MartyPC 在仿真领域的目标定位是复古 PC 开发的助手。它配备了调试工具和日志记录工具,并且还计划提供更多工具。它的设置可能不如其他模拟器那么用户友好,但如果您熟悉编辑配置文件,那么您应该不会遇到任何重大问题。为 Intel 8088 编写软件的程序员可以查看并测量其代码的准确的逐周期执行情况。 MartyPC 的开发于 2022 年 4 月开始。我于 2022 年 11 月开始致力于使 MartyPC 的 8088 CPU 仿真周期精确。为此,我针对连接到 Arduino MEGA 微控制器的真实 8088 CPU 验证了 CPU 的操作。有关更多详细信息,请参阅我的 Arduino8088 项目。这允许指令在仿真器和真实 CPU 上同时执行,并逐周期比较执行结果。我的博客上描述了有关此过程的更多信息。 2024 年 6 月,我再次更新了 8088 测试套件,以支持 8088 预取队列的锻炼。发现并纠正了更多的循环误差。 MartyPC 以 99.9997% 的循环精度通过了 8088 V2 测试套件。为了改进 MartyPC 的外设仿真,我们还进行了广泛的硬件研究,包括使用 Arduino 研究 8253 定时器芯片、使用示波器研究 DMA 时序,以及最终使用逻辑分析仪构建总线嗅探器。 2023 年 4 月,MartyPC 变得足够准确,可以运行臭名昭著的 PC 演示,8088 MPH。 2023 年 5 月,MartyPC 成为第一个能够模拟 PC 演示区 5150 中所有效果的 PC 模拟器。 (参见此处的视频:https://www.youtube.com/watch?v=zADeLm9g0Zg ) 目前,MartyPC 可以模拟以下系统: IBM Model 5150 (PC) IBM Model 5160 (XT) Generic Turbo XT IBM PCjr Tandy 1000 MartyPC 模拟以下设备: Intel 8088 - Intel 8088 的周期精确实现,包括异步BIU、处理器指令队列和预取逻辑。针对硬件测试了正确性和周期精度。 NEC V20 - NEC V20 CPU 的初步实现。基于周期,但不完全周期精确或与真实产品一样性能,因为时序尚未从用作基础的 8088 进行调整。所有本机模式 V20 指令均针对硬件进行了实现和正确性测试。 8255 PPI - 通过 PPI 和键盘移位寄存器支持低级键盘仿真。支持 TurboXT 克隆中的“turbo 位”。 8259 PIC - 基本完成,但仍然缺少优先级轮换和嵌套模式等高级功能。 8253 PIT - 高精度,支持 PCM 音频。 8237 DMAC - 大部分已实现,但 DMA 传输目前是“伪造的”。 DRAM 刷新 DMA 使用调度系统进行模拟。 8250 UART - 支持串行直通或鼠标仿真。游戏端口 - 支持两个模拟操纵杆,每个操纵杆有两个按钮。并行端口 - 模拟了足够的基本并行端口以供检测,但尚未真正用于任何目的。 CGA - IBM CGA 的动态、周期或字符时钟实现,包括 Motorola MC6845 CRTC 控制器,允许 MartyPC 运行要求苛刻的 PC 演示,如 8088MPH 和 Area5150。 MartyPC 采用独特的 PC 视频卡模拟方法,模拟整个显示区域(包括过扫描)。通过 reenigne 出色的复合转换代码(DOSBox 和 86Box 也使用)支持复合输出和监视器模拟。 TGA - PCJr 和 Tandy Graphics 视频门阵列的字符时钟实现。工作正在进行中。 MDA - 基于 Motorola MC6845 CRTC 控制器构建的 IBM MDA 卡的字符时钟实现。 Hercules - MDA 设备可以选择支持 Hercules 图形适配器的仿真。 EGA - IBM EGA 的字符时钟实现建立在开发 CGA 所使用的技术之上。它的结构是在原始硬件上复制每个 LSI 芯片的逻辑功能。它支持可重新定义的字体、垂直同步中断和每扫描线像素平移以实现平滑滚动。 VGA - IBM VGA 卡 em
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱