我最近设计了一台简单的基于Z80的电脑。这是我多年前为了乐趣和利益而做的事情。这一次,嗯,是为了娱乐和利益。但这有点不同。从前,我有一个抽屉,里面装满了可擦可编程只读存储器芯片(EPROM),还有一个EPROM橡皮擦和编程器*。这次我什么都没有。所以我必须要有创造力。
在设计系统时,我加入了2K的ROM/EPROM和2K的静态ram。当然,我买了零件,就能得到额外的配件。所以,这意味着我有一个额外的2K静态ram芯片坐在抽屉里。这是一件很强大的事情:把多余的零件放在抽屉里。我决定做的是用ram芯片,一些晶体管/晶体管(TTL)逻辑和微控制器板构建一个EPROM模拟器。
我正在使用Z80汇编程序(z80asm
从z80pack)在Linux上为Z80编写代码,因此使用microSD卡似乎是一种将代码从Linux传输到模拟器的合理方式。一旦我决定这样做,我就需要一种方法来导航卡上的文件系统,选择一个二进制文件,并将其加载到模拟器中的RAM中。看看事情是怎样滚雪球似的!
为了使项目更简单和更模块化,我选择将其分为两个独立的部分:控制器/用户界面(UI)和模拟器。为了最大限度地提高分离的灵活性,我决定使用I来连接它们2C总线。事实证明,这是一个非常好的选择,因为我使用了不同的微控制器板进行了多次迭代:从Arduino Mega2620到ItsyBisty M0 Express,最后到Metro M4 Express。
虽然我设计这个项目是为了支持我在Z80系统上的工作,但它可以用来取代任何系统中的2716 EPROM。在本指南中,我将该系统称为宿主.
*我计划在不久的将来建立一个新的EPROM程序员,它将分享这个项目的一些功能,在某些方面可以被认为是第2部分。它很可能使用相同的控制器/ui设计。