【问题标题】:Ti-83 Emulator question with the ROMTi-83 模拟器问题与 ROM
【发布时间】:2011-02-25 23:01:57
【问题描述】:

我已经建立计算机和 C++ 知识已有很长一段时间了,我决定尝试制作一个模拟器以获得更好的理解。我想尝试制作一个 TI-83 仿真器(在 Zilog Z80 CPU 上运行)。我目前有两个问题:

首先是指向当前指令的“PC”寄存器只有16位,但是我下载的Ti-83 ROM是256Kb。 16 位数据如何指向超过 ~64Kb 的地址?

其次,ROM的入口点在哪里?执行是从 0x0000 开始吗​​?

谢谢,希望你能帮助我了解一下这是如何工作的。

【问题讨论】:

    标签: c++ emulation cpu rom


    【解决方案1】:

    很可能有一个处理器内核外部的可编程分页寄存器可以设置为一次将一部分 256K 映射到部分 64K 地址空间。您将需要效仿这一点。希望您可以在官方或非官方文档中找到相关信息。如果您有原理图或 PCB,它甚至可能显示为外部 PAL 或逻辑芯片集合。

    我忘记了 z80 在复位时开始执行的地方,但我相信你会在处理器手册中找到它,这将是为其编写模拟器的必要工具。

    您需要确保使用的核心是真正的 z80,而不是某种自定义扩展版本。

    当然,我确信有人已经这样做了,所以你的项目可能更多地是关于学习 - 尽管如果你工作足够长的时间,最终你可能会超越任何可用的解决方案。

    【讨论】:

    • 是的,我在一个屏幕上打开了 Z80 手册。我搜索了“入口点”,找不到任何有用的东西。是的,这纯粹是为了学习目的,因为我知道 TI 仿真器的供应源源不断:p
    • 或谷歌。 “但在 Z80 的情况下,它只是从内存地址 0 开始,而不是像许多其他 CPU 那样使用重置向量”lateblt.tripod.com/z80proj1.htm - 不是官方来源,但至少看起来是合理的。
    【解决方案2】:

    Developer Guide 描述了内存是如何排列的,尽管它实际上并没有描述映射是如何工作的。

    短版:地址空间分为4个16K页,第一个总是映射32页闪存ROM的第0页。

    【讨论】:

      猜你喜欢
      • 2012-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-10
      相关资源
      最近更新 更多