计算机历史 - IMSAI 8080【1】介绍 作者:Codetector 编号:56268842 创建于:2019-02-04 22:06:10 修改于:2019-02-04 22:15:15 -------------------- 开始之前先简单介绍一下这件事情的缘起,也顺便介绍一下这台机器后面的历史 吧。 首先呢IMSAI 8080 可以算得上是世界上第二款家用电脑了,(最早的是Altair 8800)这台机器与 Altair 8800 采用一样的总线以及CPU架构(Intel 8080)。 但是比Altair 8800 有更好看以及更完善集成的前控制面板。 这一系列文章会随着我尝试各种事情的进程而更新, 目前的大方向计划是能正 常运行CP/M 甚至自己构建自己的操作系统。 一同配套的还有 IMSAI的 8英寸双 软驱,希望都还是好的。机器呢是恰巧有机会认识到学校的一位教授,在做很多 老旧硬件的复原以及二次开发工作。 就了解到了这台机器。 和教授一来二去, 就同意让我尝试慢慢修复、二次开发这台机器。上面的目标也是目前和教授一起 商量定下来的目标。 下面是最早拿到机器的时候里面的各种硬件,后面随着慢慢的复原会一一介绍 首先出场的是最重要的 MPU-A 也就是CPU卡啦。 上面有Intel 8080A一颗 速度2 MHz, 由 18MHz的晶振生成两个 2MHz 的 错相时钟 【也就是边沿不重叠的两个 】 (Image: https://pic1.zhimg.com/v2-7e4141b20a43276f3266277c68315eca_720 w.jpg?source=d16d100b) IMSAI 8080 - MPU A (Intel 8080处理器)接下来是一个16K 内存 上面的4个巨大的散热都是7805. 由于机器的总线只提供了 8V 和 +-16V 未稳压 的电源,所以每块板子都要有自己的稳压装置。 【也许接下来继续开发的时候 可能会更换成+-14V 和 6.5V的稳压电源,这样可以减少7805带来的热量损失。 蓝色的选择开关是用来选择内存的地址。 对应8080 16位地址的最高四位,从左 到右每四个开关分别控制4K内存的位置。 (Image: https://picx.zhimg.com/v2-f72ce61e1f5f35bc9a0ba492b73de15f_720 w.jpg?source=d16d100b) Thinker Toys - SUPERAM 16 (16K SRAM)接下来还是内存,这次是8K。根据我 猜测,这应该是机器最早带的内存,无论是从芯片的出厂日期,还是内存目前在 地址0x0000 所以应该是跟机器一起买来的内存。(这个内存只能控制整个16K 的 位置, 上面的DIP开关可以调整16K 的起始位置) (Image: https://picx.zhimg.com/v2-5c33c4a9ac6ccfdea03b4b0ad2f8a2ec_720 w.jpg?source=d16d100b) IMSAI 24-101C (16K SRAM)接下来还是内存,不过这次是两块4K 的一模一样 的板子。 左上角的LED第一行表示每1K的写保护状态,第二行表示每1K的地址被 激活的时候会点亮【第一行应该是红色,第二行应该是绿色,这部分需要更换LE D】 (Image: https://pica.zhimg.com/v2-4c62b117c94389c487cc2df8b2f411fb_720 w.jpg?source=d16d100b) IMSAI 4K RAM(1)(Image: https://pic1.zhimg.com/v2-fcaeed787df8efbdb49 e024022375abc_720w.jpg?source=d16d100b) IMSAI 4K RAM(2)更多内存,可见当年机器里面有多少内存卡。这个是GodBout 的 ECONORAM II代 从4K升级到了8K。左上角的依旧是控制内存地址的 (Image: https://picx.zhimg.com/v2-35a62eaf71eb293b6f1188e6ed29efbe_720 w.jpg?source=d16d100b) GODBOUT EconoRAM II (8K SRAM) 最开始拿到机器的时候运行非常不稳定, 有时候能用有时候不能用。 下面的短 视频是拿到第一天尝试写了一个选斐波那契数列。 左上角的输出是255以内的斐 波那契数(233最大)。有Delay 不然看不到,因为太快了。 最后附上源码,有 兴趣可以在模拟器上运行或者8080/Z80机器的话也可以直接运行。 (Image: https://pic3.zhimg.com/v2-d1e8322af88179296313b7 524267c88c.jpg) IMSAI 8080 计算斐波那契数列 https://www.zhihu.com/video/1076118143457345536 (Link: https://www.zhihu.com/video/1076118143457345536) ;fib .org 0 init: mvi a, 0 mvi b, 1 mvi l, 0xFF fib: mov c, a add b jc init xra l out 0xff xra l mov b, c mov h, a LXI d, 0FFFFh delay: dcx d mov a, d ora e jnz delay mov a, h jmp fib 之后会很快更新第二篇关于现在的问题以及简单的解决