资料介绍
描述
如果您想构建它但不喜欢完全从头开始的想法,请查看Chris Davis 的 Altair-Duino 套件,其中包含所有组件、PCB、外壳和预编程的 Arduino Due!
以下是其他人的一些图片,他们已经建立了这个项目并把它变成了自己的:
- Alan Lowther为他的版本找到了一个漂亮的金属外壳,并连接了一个 Raspberry Pi 用于输入/输出和语音合成。
如果其他人想分享他们的创作,请告诉我,我会在这里发布。我很想看到人们想出的各种版本!
很长一段时间以来,我一直认为拥有一台 Altair 8800 计算机会很酷。但是工作的老式 Altair 很少见,因此价格昂贵,如果有的话,很容易花费 1500 至 2500 美元。还有其他一些选择,例如altairclone.com ,但仍然要花费 600 美元,这对我来说太贵了,无法花在一台虽然非常酷但用途有限的计算机上。值得庆幸的是,Altair Clone 的创建者 Mike Douglas 已向社区提供了他在创建克隆时寻找并使用的所有旧文档和软件。多亏了 Mike 的工作,有大量关于 Altair 的内部工作原理及其最流行的外围设备的信息。
在某个时候,我正在查看 Arduino Mega 2560 规格并开始想知道它是否有足够的 I/O 引脚来连接 Altair 前面板的 LED 和开关并编写我自己的仿真器软件。原来 Arduino Mega的 I/O 引脚数量正好合适。所以我只需要制作自己的 Altair 克隆。
使用 Arduino Mega 来驱动模拟器运行良好且设置简单,但模拟运行速度仅为 Altair 的 25% 左右,并且只能提供 6KB 的模拟 RAM(尽管在过去这会很多)。永久存储容量(用于保存在模拟器中创建的程序/数据)也受到限制,因为 Mega 的 EEPROM 仅容纳 4KB。
Arduino Due 有足够的内存来支持完整的 64KB 模拟 RAM,并且运行速度比 Mega 快得多。此外,Due 可以在运行时将数据保存到闪存中。这使得可以使用模拟器本身未使用的 512K 闪存的任何部分进行永久存储。
使用 Due 我现在有一个 Altair 8800 模拟器,它以大约原始速度运行,提供 64K 的模拟 RAM,包括许多 Altair 软件,并且仍然可以提供 32K 的半永久存储来加载和保存模拟器中的程序和数据。
我对这个项目的目标是在使用模拟器时尽可能接近“真实”的 Altair 8800 感觉。这包括让前面板灯尽可能地反映真实行为。一个标准是应该可以玩前面板“Kill-the-Bit”游戏 - 它是:
事证明,模拟对原版来说足够真实,甚至 Altair 8800音乐演示也能正常工作。请注意,这依赖于 AM 无线电接收 Altair 电路产生的电磁干扰!
过去,Processor Technology 为 Altair 发布了一个小型扩展板(只有几个电容器和电阻器),附带的软件将 Altair 变成了一个受人尊敬的音乐系统(当时)。可以对模拟器进行相同的添加(参见文档),使其能够播放当时为音乐系统创建的曲调。这是一个例子:
Altair 另一个具有历史意义的重要扩展是Cromemco Dazzler显卡。使用软件或硬件扩展,模拟器还可以模拟该板:
强调
- 准确再现 Altair 前面板元素的行为。
- 运行速度与原始 Altair 8800 大致相同(使用 Arduino Due 时)或使用 Arduino Mega 时 25% 原始速度。
- 模拟 RAM 大小为 64KB (Due) 或 6K (Mega)
- 包含许多 Altair 程序,可以轻松加载到模拟器中,包括 Pong、Altair 4K BASIC(第一个 Microsoft 产品)、Altair 扩展 BASIC、MITS Programming System II(仅限到期)、Altair Time Sharing BASIC(允许多个用户同时使用 BASIC)。
- BASIC 和 Assembler 示例程序包含在仿真器软件中,可以轻松加载到 BASIC/Assembler 中。
- 模拟一个 88-SIO、88-2SIO 和 88-ACR(录音机接口)板。每个模拟的串行设备都可以映射到 Arduino 的串行接口。默认情况下,最常见的两个(88-SIO 和 88-2SIO 端口 1)以 115200 波特 8n1 映射到 Arduino 的主串行端口,可以通过 USB 电缆访问。我建议将串行到蓝牙加密狗连接到 RX/TX 串行引脚。这样,任何支持蓝牙的设备都可以作为 Altair 的终端。
- 在 Arduino Due 上,可以同时使用主串行接口 (USB) 和 Serial1 接口(引脚 18/19)。
- 发送到每个串行设备(包括 ACR 磁带)的数据可以被捕获并重放为多达 256 个文件,这些文件保存在 Arduino 的本地存储(EEPROM 或闪存)中。
- 磁带接口支持在扩展 BASIC 中使用 CSAVE/CLOAD 命令(支持是自动的,无需用户交互)。非常适合开发您自己的 BASIC 程序!
- 模拟Cromemco Dazzler显卡(需要一些额外的硬件/软件,请参见此处)
- 模拟处理器技术 VDM1视频终端板(需要一些额外的硬件/软件,请参见此处)
- 模拟 88-HDSK 硬盘控制器,最多连接 4 个硬盘驱动器单元(默认配置为 1 个),每个单元有 4 个盘片。
- 模拟具有实时时钟和向量中断处理功能的 88-RTC-VI 板。这使得运行 Altair Time Sharing Basic 成为可能。
- 可以将 256 字节的内存页面保存到永久存储器并加载回内存。这提供了一种保存通过前面板开关输入的程序的简单方法。
- 许多设置可以通过集成的配置编辑器轻松更改。
使用 Due 时,请注意,如果您将新版本的草图上传到 Due,模拟器中捕获或保存的所有内容都会被删除。这是因为保存的数据存储在闪存中,在上传新草图时会被擦除(Due 没有任何用于永久存储的 EEPROM)。如果 SD 卡连接到 Due,则保存的数据将存储在 SD 卡上。在这种情况下,上传新草图时数据不会丢失。
文档
由于模拟器的工作原理与 Altair 8800 完全相同,原始 Altair 文档(可在 Google 上轻松找到)将提供操作前面板开关所需的所有信息。
但是,该模拟器确实包含一些额外的功能和 Altair 的内置软件,可通过前面板上的 AUX1/AUX2 开关访问(原始 Altair 包含但未使用这些开关)。该功能在我为模拟器开发软件时编写的单独文档中进行了解释。该文档有很多页,其中包含的信息会使该页面不堪重负,因此请参阅源存储库中的Documentation.pdf文件。
构建说明
一个目标是使用尽可能少的支持电路。Arduino Mega 和 Due 都有足够的 I/O 引脚直接连接所有前面板元件。唯一需要的附加电路是驱动 36 个 LED 的晶体管和电阻器(如果 LED 直接连接到 Aruino 的输出引脚并且同时打开太多,总电流将超过 Arduino 的限制)。
为这个项目创建完整的原理图将是乏味的、重复的(36 个相同的 LED 驱动器电路、32 个开关的接线)并且不是很有帮助。因此,原理图文档包含有关哪些元素连接到哪些 Arduino 引脚以及各个子电路(如 LED 驱动器)的原理图的详细表格。我还添加了一个 Fritzing 文件来显示条板上 LED 驱动器组件的布局。
为了制作前面板,我首先对 Altair 的前面板进行了高质量扫描,然后在复印店将其打印到卡片纸上。对于背衬(实际将开关和 LED 固定到位),我使用了一张 22 号金属片,使用普通电钻为 LED 和开关打孔。LED 驱动器电路焊接在条板上,条板直接焊接到 LED 上,而 LED 又由金属片固定在适当的位置。
前面板由一个简单的木箱固定并直立。盒子没有原来的 Altair 深(因为它只需要固定前面板和 Arduino)。
要连接前面板开/关开关,我只是在盒子上添加了一个电源插座(与 Arduino 本身相同),将其连接到前面板开关,然后从那里连接到插入 Arduino 的电源插头。
使用 Arduino Due 时,可以通过将 SD 卡连接到 Due 的 SPI 端口来启用最多 16 个 88-DCDD 磁盘驱动器的仿真。原理图文档的最后一页详细显示了所需的接线。
在将草图上传到 Arduino Due 之前,请务必将 Arduino 编译器的优化设置切换为“性能”。默认情况下,它设置为“大小”(不知道为什么,因为 Due 有 512k 闪存)。为此,请加载文件
c:\Users\[user]\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.9\platform.txt
进入文本编辑器并将任何出现的“-Os”更改为“-O3”。您可以跳过此步骤,但模拟器的运行速度会明显变慢。
模拟器软件也可以在没有连接任何前面板控件的情况下在准系统 Arduino(Mega 或 Due)上运行。这确实允许运行很多包含的程序(那些主要使用串行终端而不是前面板元素的程序)。为此,请编辑config.h
源文件并设置#define STANDALONE 1
(而不是 0)。请参阅文档中的“调试功能”部分,了解如何在该设置中操作虚拟前面板元素。请记住,这不是模拟器的预期用途。如果您不想构建前面板硬件,我建议使用基于 PC 的全软件仿真器。这config.h
源文件包含许多包含/排除模拟器功能的开关。默认设置运行良好,但如果您想调整模拟器,这是开始的地方。
致谢
由于我自己没有 Altair,我不得不依靠从互联网上获取信息。由 altairclone.com 的 Mike Douglas (deramp5113) 制作的 Altair 8800 教学视频非常有帮助,观看起来非常有趣。除了制作视频之外,Mike 还收集了大量与 Altair 相关的硬件和软件手册,并在他的网站上提供了这些手册。
(请注意,Mike 的视频非常有助于在构建模拟器后获得一些关于如何使用模拟器的想法)
Martin Eberhard 的 ADEXER 工具对于低级调试硬盘支持非常宝贵。他还编写了模拟器使用的两个引导加载程序:用于引导磁盘和迷你磁盘的组合磁盘引导加载程序 (CDBL) 以及比原来更短、更稳定的硬盘引导加载程序 (HDBL)。
虽然我自己编写了包括 CPU 仿真在内的所有代码,但在高效实现半进位计算和 DAA 指令方面,我确实从 i8080 核心模型项目中获得了一些灵感。
该模拟器包括一些用于 Altair 8800 的原始软件。另外非常感谢 Mike Douglas,他花费了无数时间寻找、收集并让该软件工作,然后将其全部发布在他的altairclone.com网站上:
- Altair 4K 基础版(MITS 1975)
- Altair Extended ROM Basic (MITS 1975)
- Altair 分时基础(MITS 1977)
- Kill-the-Bit 游戏(Dean McDaniel,1975 年)
- 使用前面板的乒乓球游戏(Mike Douglas)
- “黛西,黛西……”音乐(史蒂夫·多皮尔,1975 年)
- 音乐系统(处理器技术 1977)
- MITS 编程系统 II (MITS 1976)
- Altair Turnkey Monitor (MITS 1977)
- i8080 CPU 诊断(Microcosm Associates,1980)
- i8080 CPU 锻炼器(Frank D. Cringle 1994,Ian Bartholomew 2009)
磁盘和硬盘映像(包含在源存档的“disks”子目录中)也被altairclone.com和deramp.com (Mike Douglas 的个人网站)获取。其中包括 CP/M、各种版本的磁盘 BASIC、Altair DOS(包括 Fortran)等等。再一次,Mike 完成了一项了不起的工作,找到了所有这些软件,然后创建了可供 Altair 社区使用的正常运行的磁盘映像。我只使用了一些软件,因此您可能想前往altairclone.com或deramp.com并查看更多内容。
- 生存危机-Arduino角色扮演游戏模拟器
- DIY 8800W Arduino交流调光器
- Wokwi Arduino模拟器介绍
- SMCE:您的Arduino汽车模拟器
- 用于飞行模拟器的带Arduino的LCD面板
- 带有Arduino的纠缠量子比特模拟器
- 通过在线模拟器上的Arduino操作伺服电机
- Arduino模拟器开源分享
- 一个真正的Arduino UNO电子宠物模拟器
- 用Arduino板和LDR单元制作自动存在模拟器
- labview轴心轨迹模拟器轴心轨迹分析 33次下载
- 基于DSP的电磁脉冲模拟器控制系统设计方案 13次下载
- ADSIM模拟器
- 如何使用MATLAB RTW和Vxworks实现飞行模拟器的实时仿真 6次下载
- 汽车驾驶模拟器新一代实时场景系统的开发
- DC/DC模拟器的特征和使用方法 381次阅读
- 使用Netropy广域网模拟器测试简化SD-WAN测试 396次阅读
- 华为eNSP模拟器安装教程 2717次阅读
- 华为新版模拟器eNSP Lite 5692次阅读
- 华为新版模拟器eNSP Lite安装攻略 6675次阅读
- 2分钟快速教你如何在华为模拟器ensp上进行抓包? 4068次阅读
- 如何对PNET 模拟器进行初始化安装 1755次阅读
- 使用LED作为模拟输出的汽车警报模拟器电路 1738次阅读
- HarmonyOS本地模拟器的版本演进与使用方法 6019次阅读
- 基于步进电机和单片机的航海罗经模拟器方案设计浅析 1010次阅读
- 基于QEMU系统模拟器Xilinx/QEMU的运行与调试 8886次阅读
- 基于TL431的电动汽车多节串联锂电池模拟器 7262次阅读
- 一种基于FPGA嵌入式系统的雷达信号模拟器的实现 2601次阅读
- 基于FPGA的飞行模拟器通信接口设计 2598次阅读
- 基于TS101的SAR回波信号模拟器设计 1457次阅读
下载排行
本周
- 1美的电磁炉维修手册大全
- 1.56 MB | 5次下载 | 5 积分
- 2SMD LED选型手册 贴片灯珠
- 5.47 MB | 3次下载 | 免费
- 3基于PLC的拉丝机张力控制系统研究
- 0.14 MB | 2次下载 | 5 积分
- 4LZC3106G高性能谐振控制器中文手册
- 1.29 MB | 1次下载 | 1 积分
- 5JL2233B集成电平转换功能的LDO中文手册
- 0.50 MB | 1次下载 | 免费
- 6加密芯片的一种破解方法和对应加密方案改进设计
- 0.29 MB | 1次下载 | 免费
- 7万用表UT58A原理图
- 0.09 MB | 1次下载 | 5 积分
- 8BOSCH-REXROTH300拧紧系统常见故障及处理方法
- 0.06 MB | 次下载 | 5 积分
本月
- 1使用单片机实现七人表决器的程序和仿真资料免费下载
- 2.96 MB | 44次下载 | 免费
- 2UC3842/3/4/5电源管理芯片中文手册
- 1.75 MB | 19次下载 | 免费
- 3华瑞昇CR216芯片数字万用表规格书附原理图及校正流程方法
- 0.74 MB | 14次下载 | 3 积分
- 4DMT0660数字万用表产品说明书
- 0.70 MB | 13次下载 | 免费
- 53314A函数发生器维修手册
- 16.30 MB | 13次下载 | 免费
- 6TPS54202H降压转换器评估模块用户指南
- 1.02MB | 8次下载 | 免费
- 7STM32F101x8/STM32F101xB手册
- 1.69 MB | 8次下载 | 1 积分
- 8感应笔电路图
- 0.06 MB | 7次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935119次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420062次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233084次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191367次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183335次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81581次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73807次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65987次下载 | 10 积分
评论
查看更多