3

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

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

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

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

4

2 回答 2

0

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

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

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

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

于 2011-02-25T23:06:43.837 回答
0

开发人员指南描述了内存是如何排列的,尽管它实际上并没有描述映射是如何工作的。

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

于 2011-02-26T02:24:26.033 回答