在Z80单板计算机上获得CP / M的乐趣

2021-04-17 22:00:03

在过去,我谈到了构建基于Z80的计算机。我对这一目标取得了一些进展,从而在感觉中,我将初始(琐碎的步骤)迈向制作某事:

我收到了运行无休止的NOP指令的东西。没有RAM / ROM连接,将所有总线低,这意味着每个尝试的内存读取的返回0x00,即Z80 NOP指令。

但是,我一再在设计到RAM和ROM的界面时停滞不前,因此它实际上可以做一些有用的东西。在锁定我身上,我一直处于两个思想中,关于被吮吸兔子洞,所以我妥协了。我做了一些搜索Tindie,以及类似的地方,并计算了一个基于Z80的单板电脑的I&#39。我的要求很小:

通过这些目标,有一堆板可以选择,RC2014是标准选择 - 一个使用公共背板的精心设计的系统,并允许您构建迷你板以添加功能。所以首先建立CPU卡,然后是RAM卡,然后是闪存盘卡等,在一个感觉中过度设计,在另一个感觉中可扩展。 (有一些单板变体,以减少焊接开销,以较小的灵活性降低。)

过了一会儿,我遇到了https://8bitstack.co.uk/,它描述了一个名为Z80游乐场的简单板。

这种设计的优势在于它从USB棒加载代码,使得易于将文件传输到/来自它,而无需紧凑型闪存卡或类似。缺点是系统只有64K RAM,这意味着它不能运行CP / M 3,只有2.2。 (CP / M 3.x需要更多的RAM,以及银行/分页系统设置以在页面之间交换。)

当系统启动它从EEPROM加载代码时,然后从USB-kick获取CP / M文件,将它们复制到RAM中并执行它们。存储映射可以拆分,所以你有ROM& RAM,或者您只有RAM(在启动后,ROM将被关闭)。要更改您需要重新编程EEPROM的初始内容,之后它只是一个' s只是一个向棍子添加二进制文件或将它们传输在串行端口上。

在只有几个小时内,我得到了基本的东西以及我需要的东西:

系统本身上涡轮帕斯卡3.00A的安装。在这里使用TurboPascal的良好概述,涵盖了如何使用/退出编辑器,编译二进制文件等。

我有一些乐趣与CP / M仿真器,在电路板到达之前让我的手回来,并使用我测试了我的第一个"真实"汇编语言程序(CLS清除屏幕),以及使用在涡轮吉斯卡环境中使用的Wordstar键盘快捷键的挂起。

由于CP / M 2.x没有子目录的概念,您最终将使用驱动器对所有内容,我实施了A"搜索路径"所以当你输入" foo"它将尝试运行"答:foo.com"如果在当前驱动器上没有文件匹配。那个'一个更好的用户体验。

我还写了一些Z80汇编代码,用于搜索所有驱动器,如果没有在当前驱动器中找到而不是合格的可执行文件。记住cp / m nod' t有一个子目录的概念,其实际上非常有用:

我还写了一些其他琐碎的汇编语言工具,这令人惊讶地放松。特别是一旦我回到了优化尺寸的禅宗模式。

我刻了上游存储库,主要是整理内容,而不是因为我想进入我自己的方向。 I' ll保持内容在同步,因为它没有进一步分裂社区 - 我想在野外的这些板中少于100个,可能较少。

如果剩余的任何字段留空,则将忽略您的提交,但永远不会显示您的电子邮件地址。