Ti-83 模拟器与 ROM 的问题

发布于 2024-10-19 05:04:16 字数 243 浏览 9 评论 0原文

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

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

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

谢谢,希望你能帮助我理解它是如何工作的。

I have been building knowledge of computers and C++ for quite a while now, and I've decided I want to try making an emulator to get an even better understanding. I want to try making a TI-83 Emulator (runs on a Zilog Z80 CPU). I currently have two problems:

The first is that the "PC" register that points to the current instruction is only 16 bits, but the Ti-83 ROM I downloaded is 256Kb. How is 16 bits of data supposed to point to an address beyond ~64Kb?

Secondly, where is the entry point on the ROM? Does the execution just begin at 0x0000?

Thanks, and hopefully you can help me understand a bit on how this works.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

囍笑 2024-10-26 05:04:16

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

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

您需要确保所使用的核心确实是 z80,而不是某种定制的扩展版本。

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

There's is most likely a programmable paging register outboard of the processor core that can be set to map a portion of the 256K at a time into part of the 64K address space. You will need to emulate that. Hopefully you can find out about this in official or unofficial documentation. If you have a schematic or PCB it might even be visible as an external PAL or collection of logic chips.

I forget off the top of my head where a z80 starts executing on reset, but I'm sure you will find it in the processor manual, which would be a necessary tool to write an emulator for it.

You'll want to make sure the core used is truly a z80 and not some kind of custom extended version thereof.

And of course I'm sure someone has already done this, so your project is likely to be more about learning - though in the end you might surpass any available solution if you work on it long enough.

笑脸一如从前 2024-10-26 05:04:16

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

简短版本:地址空间分为四个 16K 页,其中第一个始终映射 32 页闪存 ROM 的页 0。

The Developer Guide describes how memory is arranged, although it doesn't actually describe how the mapping works.

Short version: the address space is divided into four 16K pages, the first of which always maps page 0 of the 32-page flash ROM.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文