如何组装Apple 1并为其编写游戏

如何组装Apple 1并为其编写游戏




自苹果计算机1发行以来已经过去40年了。今天,它的功能甚至无法达到简单的微处理器设备或微控制器。 但是在1976年,这种新颖性引起了轩然大波,甚至有人说计算机世界发生了一场革命。 我邀请读者与我一起收集Apple 1,以了解它的有趣之处并编写某种程序。

我必须立即说我没有一次收集它。 搜索组件,在空闲时间进行构建和调试,然后进行大约相同数量的调试,花了三年的时间,最后聚在一起撰写本文。

特点苹果1


类型:个人电脑
生产年限:1976年7月-1977年3月
处理器:MOS 6502
时钟频率:1MHz
内存:256字节ROM,4kB RAM,最大可扩展到8kB
视频:40x24个字符
制造:约200件

一点历史


Apple 1的创建者是Stephen Wozniak。 实际上,在创建之时,它还没有被称为Apple1。是的,Apple本身并不存在。

史蒂夫从小就喜欢设计电子设备。 他的第一台计算机是“奶油苏打”,无需使用中央处理器即可在集成电路上进行设计,并且能够执行简单的数学运算。 不幸的是,我找不到这台计算机的任何照片或任何描述,仅是史蒂夫本人在书中所描述的相当卑鄙的信息。 “奶油苏打”的命运也令人难过-它被烧毁了,没有试图恢复它的尝试。 后来,史蒂夫(Steve)在惠普(HP)从事计算器工作时,他的朋友艾伦鲍姆(Allen Baum)邀请了在加利福尼亚帕洛阿尔托举行的计算机俱乐部会议。 史蒂夫获悉,本次会议专门针对终端和视频技术。 那时,他已经创建了自己的终端,可以在ARPANET中工作,并且对终端技术有所了解,这就是他同意加入的原因。 史蒂夫是一个谦虚的人,如果他知道那是关于计算机的,他说他不会去那里。
在会议上,当与会人员正在讨论一些奇怪的微处理器和Altair 8800计算机时,他感到很自在。

会议结束后,给了他一张介绍i8080A微处理器的传单。 他决定在闲暇时研究它,意识到这正是他在他的第一台PC“奶油苏打”中所做的,以及如何使其变得更容易。 在同一天,他出生了未来的Apple 1的体系结构。但几个月后才进入组装,该阶段用于研究新微电路的规格并寻找组件。 事实是,在20世纪70年代,微处理器和存储器非常昂贵且稀缺。 MOS Technology公司发布了预算处理器6500,并很快推出了6500(类似于6500),但功能强大,仅售25美元,就解决了处理器的问题。 传奇人物6502首先落入史蒂夫之手。

那时的下一个问题是准备启动计算机。 在那些年里,通常将引导程序手动或从磁带输入到计算机中,这花费了半个小时,然后才可以对它们进行处理。 文章结尾的第二个链接提供了有关BASIC发行的视频以及在Altair 8800上编写的游戏程序的视频。 Steve通过在PC中安装永久存储芯片(ROM)并记录了控制程序来解决此问题,他将其称为“显示器”。 该名称反映了目的-在大多数情况下,她监视击键并将其传输到终端,并允许在存储单元中显示值并从特定位置运行程序。 沃兹尼亚克的监视器可容纳253个字节。
但是他仍然缺少启动计算机的RAM。 他的PC的第一个版本建立在缓慢的静态内存上。 后来,他用动态芯片代替了它,从而减少了电路板上的芯片数量,并积极地影响了工作速度。
史蒂夫向公众展示了他的PC,他的朋友史蒂夫·乔布斯(Steve Jobs)帮助将监视器带到俱乐部,建议开始为该PC生产印刷电路板,并建议创办自己的公司,名为Apple。

您可以在iWoz书中阅读有关此内容的更多信息。

苹果主板1




PC架构


一台PC包含多个节点。


网站来源

图像形成和输出单元(端子)




实际上,这是ARPANET的史蒂夫终端。 七位总线在其入口处,通过该总线接收数据以输出到电视屏幕。

它没有直接访问视频内存(DAP)的方案,但是使用1024位7位单元的循环内存更新(此外,未使用64位单元)。 由于缺少DAP,此终端的作用类似于打字机-他们将字符提交给输入,将其显示在屏幕上,将光标移动到下一个字符,并且没有图形。 由于该存储器的不断更新,终端的操作相当慢。 所有字符都按顺序显示,您不能只返回并更正输入错误的字符。 为了进行编辑,您需要输入Monitor命令,该命令将更改发生错误的存储单元的内容,然后使用另一个命令显示更改后的存储单元的字节值。

如果在程序中我们要清除屏幕,则需要将笔架24次转移到新行24次。 顺便说一句,当您按Return键(现代名称为Enter)时,生成器启动,它将在行尾打印空格字符。

没有图形模式,并且字符集仅限于标准ASCII码集,其值介于1到127之间(屏幕上仅显示间隔32-126的字符,其他一些字符用作控制字符,例如13-换行),因此为七位总线并以最高顺序设置单位。

所有显示字符的布局都记录在只读存储器(ROM)中。 字符到达终端输入后,首先将其写入一个小存储器(现代视频存储器的类似物),然后通过计数器系统选择字符发生器ROM中包含输出字符布局的地址,并通过移位寄存器将此数据与生成的视频时钟脉冲混合监视器输入(或低频电视输入)。

为了调节图像的亮度,电路板上有一个调谐电阻。 我用一个简单的等分线代替了它。

还应注意的是,由于图像形成方案中的错误,无法在大多数现代数字电视或监视器上正确显示它,而模拟电视则可以原谅这些错误。 在文章的结尾,有一个三分钟的录像带,在这样的监视器上,我很痛苦。

微处理器单元



它包含一个6502微处理器,ROM,I / O端口(PIA),缓冲放大器,设备地址解码器,RAM和一些小型微电路。

I / O块并与外部设备一起使用




轮询键盘,然后输入输出控制器(PIA)6520将输入的字符传输到数据总线。相反,我安装了6821。它工作正常。

外部设备的工作与存储单元的工作一样。 每个设备都有自己的存储区。 端口解码器处理来自特定设备的输入/输出。 它的输入线连接到微处理器的地址线,因此,当您设置所需的地址时,所需的设备将连接到数据总线。 程序以及设备本身决定了什么以及如何使用它。
由于未在此PC中实现中断,因此中央处理器将处理整个数据流(键盘输入,字符输出,与外部设备的数据交换等)。

要连接外部设备,主板上有一个连接器。 我所知道的唯一在70年代为该PC创建的设备是用于与外部数据存储设备一起工作的接口板-录音机。



电源供应




这里的一切都很简单。 需要四个电压为计算机供电。 + 5V,-5V,+ 12V和-12V。 电源由买方独立制造。 为此,有必要单独购买两个降压变压器,并将它们连接到已经有整流器和稳定器的主板上。 散热器上有一个+ 5V的稳定器,它会明显发热,因此很多用户在上面安装了风扇,我没有发明自行车,但我也这样做。

当然,可以放置一个现代化的开关电源,但是我想要一个热管以50 Hz的速度隆隆声。

零件搜索,组装和调试


就像我在上面写的那样,尽管是间歇性的,但花了将近3年的时间来搜索组件。 首先买了一块印刷电路板,在架子上躺了大约一年后,它开始逐渐成长为零件。 首先,我焊接了用于微电路的插座和用于连接电源和显示器的连接器。 然后是所有无源元件-电阻器,电容器和二极管。 没错,原始的Sprague电容器无法立即获得,而上半年取而代之的是普通的现代电解液。

大多数微型电路是立即获得的,而且,大多数具有155系列的苏联类似物。 我必须为这样的微电路奔跑:

视频ROM-必须在其中记录某种固件,否则将没有足够的图像。
2504V-七个寄存器,用于存储屏幕上显示的图像。
2519B是用于构建没有类似物的图像的计数器。
8T97-防止微处理器数据总线过载的数据总线缓冲器;在其他方面,他们后来找到了苏联的替代产品-K155LP11。
具有控制程序“监视器”的ROM。

在主板上找到,焊接或安装了所有组件之后,最有趣的部分开始了-调试。

第一次打开-单击电源开关,持续5秒钟,然后关闭-没有烟,公寓内的交通堵塞完好无损,没有任何火灾-命令。 我打开它,看图片-屏幕上的随机字符有垃圾。 我按了它后面的RESET和CLEAR SCREEN(是的,是的,有一个这样的按钮-用户不会被时尚的事物宠坏,然后设计师认为,让用户在需要时可以清除屏幕),什么也没发生-相同的随机垃圾。
最重要的是,+ 5V稳定剂已经开始烘烤,新鲜燃烧的清漆毛毡散发出温暖的香气,来自该稳定剂的油漆毡已经散布在整个房间。 我将其关闭,等待5分钟,直到它完全冷却为止,在如此短的系列中,我尝试在整个调试期间进行进一步的调试,因此不再赘述。

如果一切正常,则在打开计算机后,欢迎屏幕保护程序将在监视器的整个工作空间中以交替的,闪烁的“ @_”字符的形式出现在屏幕上,并且在按RESET和CS后,屏幕应清除,并且仅保留光标以输入命令控制程序“监视器”。

目视检查以及成像和电源电路的连续性没有任何结果。 经过几天的折磨,我发现卖方给了我错误的视频存储芯片类似物。 虽然模拟量是1404A,但我却站了1403A。 我从面板上拉出了这些寄存器,但屏幕上没有任何变化。 卖方承认了自己的错误,并要求将这些寄存器寄回给他,但是由于它们并不昂贵,所以我对此并不在意。 原始的寄存器已经花了我大约80美元。 他们不得不等待三个星期。

替换寄存器后,终于出现了期待已久的眨眼狗(或苹果,您更喜欢这些狗),这意味着视频存储器,并获得了整个视频块。

我按RESET,CS键,屏幕被清除,但没有出现光标。 因此微处理器单元不工作。 问题的根源不多-处理器,ROM或绑定中的小逻辑。

被调查的第一个组件是带有“ Monitor”的ROM,因为其中一个微电路正在显着升温。

有点分散注意力,我要说的是控制程序记录在两个存储芯片中,每个存储芯片有255个存储单元,每个芯片的输出中只有4位。 为了控制8位处理器,Wozniak并行放置了2个这样的微电路,在输出端接收了所需的8个数据位。 并且他的整个控制程序适合253个字节(剩余2个字节)。



为了读取该存储器的内容,我在面包板上组装了一个基于Arduino的设备。

控制器依次对这些ROM的地址进行排序,将4位数据合并为8位数据,并以十六进制形式将其显示在计算机上的通信通道的监视器中。 检查ROM的内容后,我没有发现任何错误。

替换小逻辑也没有产生结果,因此怀疑是在主处理器的古老年代和他的退休上。

我没有另一台基于6502的计算机,因此我将其安装在面包板上,由Arduinki提供电源,发电机时钟脉冲为1 MHz(来自未来的Specialist PC),在数据总线上安装了NOP命令,跳线为+ 5V,并且我希望通过执行空操作将增加地址计数器的值。 但这没有发生。 什么都没发生。 看起来石头现在绝对是石头。 我订购了另一个,因为它应该由MOS生产。 当他开车时,我设法去度假并在海里游泳。



测试处理器6502。是的,有可能从Mega定时器中获得1 MHz,是的,有可能完全没有它,我可以做到所有这些,但是后来我想做到这一点。

安装新处理器后,打开-你好,狗-重置-CS-你好命令行! 处理器单元已经工作了,还不到六个月!

下一个问题-我什么都没有输入命令和代码,也没有键盘。

琴键


该PC的键盘是一个导体网格,在其节点中安装了按钮。 这种情况下连接到按键解码器,该解码器沿7位ASCII线输出按键代码,并在单独的线上输出短期门控脉冲。 随着该脉冲传递到控制总线,处理器开始处理输入的字符。



通常,要获得这样的键盘,问题仍在解决中,但这通常是带有两个零的数字,而不是俄罗斯卢布。 因此,我开始考虑如何将PS / 2键盘连接到计算机。

在我看来,没有比Arduino Nano更有趣的事情了。 那天晚上,我通过安装安装将适配器安装在PS / 2和ASCII端口之间,并为其编写了固件。 由于Apple 1没有PgUp和PgDown键,因此我将它们用作RESET和CLEAR SCREEN按钮。 从今天开始,我不必用手在板上用镊子闭合腿,这非常令人愉快。

键入的字符被著名地打印在屏幕上,甚至该计算机文档中的测试程序都可以使用。 她所做的只是循环显示此计算机上显示的所有字符。


顶视图


底视图

键盘发生了一个有趣的故事。 最初,Return键只起作用一半-它正确地将命令输入到内存中,并给出了执行命令的指令,但是并没有转换为新行。 通常,由于终端的性质,这不会造成大问题。 但是我决定解决这个问题。 我从研究PC电路图开始,由Mdesk用户使用zx-pk.ru提供了很大的帮助。 研究电路时,我对硬件托架转换单元的操作没有任何疑问,我坐在测试仪和示波器旁。 导体的振铃什么也没产生-全部完好无损。 然后示波器开始工作。 我从PIA调用了输入信号-它们是正常的,该信号在7451N上的某处丢失,我尝试将其更改为7450,以及苏联类似物(155LR1和155LR11),此操作不起作用。 进一步解开链条,我到达了单振动器74123,有必要检查它产生的延迟。 但是我的适配器实际上将其关闭,这使通话不舒服。

然后我写了一个测试程序
280:A9 8D 20 EF FF A9 31 20 EF FF 4C 80 02
她所做的只是显示序列Return-1-Return-1(向下滚动的单位)。

我启动了它,正如预期的那样,单位已经投入生产。 然后我将适配器从插座中拔出,设备立即耗尽。 因此原因是适配器。 之后,迅速拧开问题。 我用作重置并清除屏幕的PgUp和PgDown按钮。 屏幕清洁(CLR)悬在Arduina的一只脚上,在清洁时,我在那儿应用了一只,释放后我重置为0。这个0熄灭了整个CLR线,但实际上它也使用换行功能。 解决方案很简单-在Arduinka和CLR之间放置一个二极管,就可以了!

由于拨号手动千字节程序是一项繁琐且并非总是准确的任务,因此我想到了将SD卡连接到可以输入程序的同一Arduinka的想法。 它的工作原理是-将名为dump.hex的文件放入根目录,然后按TAB键,控制器读取文件的内容并按相应的键。

软体类


Apple 1 , — Apple 2. . 30 Apple 1, ( ).

, . 2048. , ( 6502 ) 2 . 1679 . , .

280: 4C F8 08 20 20 20 20 20
288:20 20 32 20 20 20 34 20
290:20 20 38 20 20 31 36 20
298:20 33 32 20 20 36 34 20
2A0:31 32 38 20 32 35 36 20
2A8:35 31 32 31 30 32 34 32
2B0:30 34 38 01 00 00 00 00
2B8:00 00 00 00 00 00 00 00
2C0:00 00 00 2B 2D 2D 2D 2D
2C8:2D 2D 2B 2D 2D 2D 2D 2D
2D0:2D 2B 2D 2D 2D 2D 2D 2D
2D8:2B 2D 2D 2D 2D 2D 2D 2B
2E0:8D 00 A2 00 A9 8D E8 20
2E8:EF FF E0 24 F0 03 4C E6
2F0:02 60 A9 2B 20 EF FF A9
2F8:20 20 EF FF 60 A9 8D 20
300:EF FF 60 0A 2A A8 A9 00
308:79 83 02 20 EF FF C8 A9
310:00 79 83 02 20 EF FF C8
318:A9 00 79 83 02 20 EF FF
320:C8 A9 00 79 83 02 20 EF
328:FF A9 20 20 EF FF 20 F2
330:02 60 20 FD 02 A2 00 BD
338:C3 02 20 EF FF E8 E0 1E
340:F0 03 4C 37 03 60 20 32
348:03 20 F2 02 AD B3 02 20
350:03 03 AD B4 02 20 03 03
358:AD B5 02 20 03 03 AD B6
360:02 20 03 03 20 32 03 20
368:F2 02 AD B7 02 20 03 03
370:AD B8 02 20 03 03 AD B9
378:02 20 03 03 AD BA 02 20
380:03 03 20 32 03 20 F2 02
388:AD BB 02 20 03 03 AD BC
390:02 20 03 03 AD BD 02 20
398:03 03 AD BE 02 20 03 03
3A0:20 32 03 20 F2 02 AD BF
3A8:02 20 03 03 AD C0 02 20
3B0:03 03 AD C1 02 20 03 03
3B8:AD C2 02 20 03 03 20 32
3C0:03 60 32 30 34 38 8D 8D
3C8:57 2D 55 50 8D 41 2D 4C
3D0:45 46 54 8D 44 2D 52 49
3D8:47 48 54 8D 53 2D 44 4F
3E0:57 4E 8D 8D 43 4F 44 45
3E8:3A 20 44 45 4E 49 53 20
3F0:50 41 52 59 53 48 45 56
3F8:8D 8D 50 52 45 53 53 20
400:41 4E 59 20 4B 45 59 A2
408:00 BD C2 03 20 EF FF E8
410:E0 45 F0 03 4C 09 04 AD
418:11 D0 10 FB AD 10 D0 8D
420:E1 02 60 47 41 4D 45 20
428:4F 56 45 52 59 4F 55 20
430:57 49 4E 20 E2 02 A2 00
438:BD 23 04 20 EF FF E8 E0
440:09 F0 03 4C 38 04 A2 34
448:BD C2 03 20 EF FF E8 E0
450:43 F0 03 4C 48 04 AD 11
458:D0 10 FB AD 10 D0 4C F8
460:08 A0 00 AD E1 02 29 0F
468:AA C8 C0 11 F0 C5 BD B3
470:02 C9 00 F0 0A E8 E0 10
478:D0 EF A2 00 4C 69 04 A9
480:01 9D B3 02 8E E1 02 60
488:A2 00 A9 00 9D B3 02 E8
490:E0 10 D0 F8 A9 01 8D B3
498:02 60 00 00 00 00 00 00
4A0:AE 9F 04 BD 9A 04 C9 00
4A8:D0 14 AE 9E 04 BD 9A 04
4B0:AE 9F 04 9D 9A 04 A9 00
4B8:AE 9E 04 9D 9A 04 60 A9
4C0:03 8D 9F 04 A9 02 8D 9E
4C8:04 20 A0 04 A9 02 8D 9F
4D0:04 A9 01 8D 9E 04 20 A0
4D8:04 A9 01 8D 9F 04 A9 00
4E0:8D 9E 04 20 A0 04 A9 03
4E8:8D 9F 04 A9 02 8D 9E 04
4F0:20 A0 04 A9 02 8D 9F 04
4F8:A9 01 8D 9E 04 20 A0 04
500:A9 03 8D 9F 04 A9 02 8D
508:9E 04 20 A0 04 60 20 E2
510:02 A2 00 BD 2C 04 20 EF
518:FF E8 E0 07 F0 03 4C 13
520:05 A2 34 BD C2 03 20 EF
528:FF E8 E0 43 F0 03 4C 23
530:05 AD 11 D0 10 FB AD 10
538:D0 4C F8 08 AE 9E 04 BD
540:9A 04 C9 00 F0 1D AE 9F
548:04 DD 9A 04 D0 15 A8 C8
550:98 AE 9F 04 9D 9A 04 C9
558:0B F0 B3 A9 00 AE 9E 04
560:9D 9A 04 60 A9 02 8D 9E
568:04 A9 03 8D 9F 04 20 3C
570:05 A9 01 8D 9E 04 A9 02
578:8D 9F 04 20 3C 05 A9 00
580:8D 9E 04 A9 01 8D 9F 04
588:20 3C 05 60 20 BF 04 20
590:64 05 20 BF 04 60 AD B3
598:02 8D 9D 04 AD B7 02 8D
5A0:9C 04 AD BB 02 8D 9B 04
5A8:AD BF 02 8D 9A 04 20 8C
5B0:05 AD 9A 04 8D BF 02 AD
5B8:9B 04 8D BB 02 AD 9C 04
5C0:8D B7 02 AD 9D 04 8D B3
5C8:02 AD B4 02 8D 9D 04 AD
5D0:B8 02 8D 9C 04 AD BC 02
5D8:8D 9B 04 AD C0 02 8D 9A
5E0:04 20 8C 05 AD 9A 04 8D
5E8:C0 02 AD 9B 04 8D BC 02
5F0:AD 9C 04 8D B8 02 AD 9D
5F8:04 8D B4 02 AD B5 02 8D
600:9D 04 AD B9 02 8D 9C 04
608:AD BD 02 8D 9B 04 AD C1
610:02 8D 9A 04 20 8C 05 AD
618:9A 04 8D C1 02 AD 9B 04
620:8D BD 02 AD 9C 04 8D B9
628:02 AD 9D 04 8D B5 02 AD
630:B6 02 8D 9D 04 AD BA 02
638:8D 9C 04 AD BE 02 8D 9B
640:04 AD C2 02 8D 9A 04 20
648:8C 05 AD 9A 04 8D C2 02
650:AD 9B 04 8D BE 02 AD 9C
658:04 8D BA 02 AD 9D 04 8D
660:B6 02 60 AD B3 02 8D 9A
668:04 AD B7 02 8D 9B 04 AD
670:BB 02 8D 9C 04 AD BF 02
678:8D 9D 04 20 8C 05 AD 9D
680:04 8D BF 02 AD 9C 04 8D
688:BB 02 AD 9B 04 8D B7 02
690:AD 9A 04 8D B3 02 AD B4
698:02 8D 9A 04 AD B8 02 8D
6A0:9B 04 AD BC 02 8D 9C 04
6A8:AD C0 02 8D 9D 04 20 8C
6B0:05 AD 9D 04 8D C0 02 AD
6B8:9C 04 8D BC 02 AD 9B 04
6C0:8D B8 02 AD 9A 04 8D B4
6C8:02 AD B5 02 8D 9A 04 AD
6D0:B9 02 8D 9B 04 AD BD 02
6D8:8D 9C 04 AD C1 02 8D 9D
6E0:04 20 8C 05 AD 9D 04 8D
6E8:C1 02 AD 9C 04 8D BD 02
6F0:AD 9B 04 8D B9 02 AD 9A
6F8:04 8D B5 02 AD B6 02 8D
700:9A 04 AD BA 02 8D 9B 04
708:AD BE 02 8D 9C 04 AD C2
710:02 8D 9D 04 20 8C 05 AD
718:9D 04 8D C2 02 AD 9C 04
720:8D BE 02 AD 9B 04 8D BA
728:02 AD 9A 04 8D B6 02 60
730:AD B6 02 8D 9A 04 AD B5
738:02 8D 9B 04 AD B4 02 8D
740:9C 04 AD B3 02 8D 9D 04
748:20 8C 05 AD 9D 04 8D B3
750:02 AD 9C 04 8D B4 02 AD
758:9B 04 8D B5 02 AD 9A 04
760:8D B6 02 AD BA 02 8D 9A
768:04 AD B9 02 8D 9B 04 AD
770:B8 02 8D 9C 04 AD B7 02
778:8D 9D 04 20 8C 05 AD 9D
780:04 8D B7 02 AD 9C 04 8D
788:B8 02 AD 9B 04 8D B9 02
790:AD 9A 04 8D BA 02 AD BE
798:02 8D 9A 04 AD BD 02 8D
7A0:9B 04 AD BC 02 8D 9C 04
7A8:AD BB 02 8D 9D 04 20 8C
7B0:05 AD 9D 04 8D BB 02 AD
7B8:9C 04 8D BC 02 AD 9B 04
7C0:8D BD 02 AD 9A 04 8D BE
7C8:02 AD C2 02 8D 9A 04 AD
7D0:C1 02 8D 9B 04 AD C0 02
7D8:8D 9C 04 AD BF 02 8D 9D
7E0:04 20 8C 05 AD 9D 04 8D
7E8:BF 02 AD 9C 04 8D C0 02
7F0:AD 9B 04 8D C1 02 AD 9A
7F8:04 8D C2 02 60 AD B6 02
800:8D 9D 04 AD B5 02 8D 9C
808:04 AD B4 02 8D 9B 04 AD
810:B3 02 8D 9A 04 20 8C 05
818:AD 9A 04 8D B3 02 AD 9B
820:04 8D B4 02 AD 9C 04 8D
828:B5 02 AD 9D 04 8D B6 02
830:AD BA 02 8D 9D 04 AD B9
838:02 8D 9C 04 AD B8 02 8D
840:9B 04 AD B7 02 8D 9A 04
848:20 8C 05 AD 9A 04 8D B7
850:02 AD 9B 04 8D B8 02 AD
858:9C 04 8D B9 02 AD 9D 04
860:8D BA 02 AD BE 02 8D 9D
868:04 AD BD 02 8D 9C 04 AD
870:BC 02 8D 9B 04 AD BB 02
878:8D 9A 04 20 8C 05 AD 9A
880:04 8D BB 02 AD 9B 04 8D
888:BC 02 AD 9C 04 8D BD 02
890:AD 9D 04 8D BE 02 AD C2
898:02 8D 9D 04 AD C1 02 8D
8A0:9C 04 AD C0 02 8D 9B 04
8A8:AD BF 02 8D 9A 04 20 8C
8B0:05 AD 9A 04 8D BF 02 AD
8B8:9B 04 8D C0 02 AD 9C 04
8C0:8D C1 02 AD 9D 04 8D C2
8C8:02 60 AD 11 D0 10 FB AD
8D0:10 D0 8D E1 02 C9 D7 D0
8D8:04 20 96 05 60 C9 D3 D0
8E0:04 20 63 06 60 C9 C1 D0
8E8:04 20 30 07 60 C9 C4 D0
8F0:04 20 FD 07 60 4C CA 08
8F8:20 88 04 20 E2 02 20 07
900:04 20 E2 02 20 61 04 20
908:46 03 20 CA 08 4C 01 09




YouTube上的视频作品。

接下来是什么?


首先,我想使其更漂亮。

键盘和SD卡的适配器。 有必要摆脱表面贴装的问题,我计划在中国开发并订购印刷电路板。

处理多个文件。 我打算为Arduinka写一个文件管理器,这将允许我从存储卡中选择一个文件并运行它。

我还购买了扩展卡连接器。 我想为他焊接K580VI53上的声卡(只是因为此计时器在家里),并绘制一个带有声音的小演示。
这可能是下一篇文章。

结论


要说我真的很喜欢为Apple 1构建,调试和编写程序实在无话可说。

非常感谢用户Mdesk和zx-pk.ru的所有人员在解释体系结构复杂性方面的帮助以及在设置此PC方面的有用技巧。

好吧,这要感谢史蒂夫·沃兹尼亚克(Steve Wozniak)出色的个人电脑!

有用的链接


Wiki上的Apple 1
在Altair 8800上进行BASIC加载
Apple 1和现代显示器(三分半钟的痛苦和苦难)
30年Apple 1(演示)
在线模拟器Apple 1
在线汇编器/反汇编器/调试器6502

专门针对Apple 1的俄语网站:
mdesk.ru
zx-pk.ru

Source: https://habr.com/ru/post/zh-CN431270/


All Articles