更新,这次终于可以自行运行ROM启动程序了
(之前的是测试工具相当于数据都是灌到嘴巴里的,但是这次是用一个简易的pc计数器来控制的,排除了一些实际运行中的错误)
离目标又近了一步
剩下的就是时间对它的考验了,鬼知道以后还会遇到多少问题
先放一些图吧
以及之前最早的电路图
目前的话预计的配置
名称:
隶属:暂无
结构:哈佛结构
位宽:8位
ROM大小:4MB可拓张
RAM大小:显存:64KB×2=128KB
内存:128KB
SFR:未定
大概就这么多吧
文档的下载链接(这个版本的电路图还是属于最早的测试版的,新版还没有画完
另外,本设计完全开源
最初打算制作这款计算机的缘由:
自从16年看到龙少等人研究出自己的74门计算机,并有一定的生态圈子时,很是羡慕,梦想自己也能做出一台除74门外不含有任何逻辑性质的芯片的计算机
可是,年复一年(大概断断续续思考了有一年左右吧)一直倒在vga这块儿,也就当做笑耳,以这个为借口不再研发下去了
今年寒假,为windows苦于图形界面软件编程教程甚少的时候,又会想起来,可惜但是只不过时间太短了,没有留下什么留念,只是草草翻译了几篇datasheet了吧,寒假过后,也没机会碰电脑,毕竟一个初中生怎么较量得过家管严的父母呢
暑假,在B站上投稿了较多专栏,主要以教程的方式向大家入门74门微处理器,慢腾腾地做着自己的专栏,所幸,反响不错
在这段期间内,我还肤浅地研究了一下龙少的机子,发现了两个诟病(如有错误欢迎指正)
1.大量使用74门自身特性做延迟用
2.对于移位方面比较浪费元件
我还小小地整理了一下龙少的电路图,整合成一个pdf
暂时就这么多吧,等会去学校回来继续更新
[修改于 6年6个月前 - 2018/09/09 14:44:36]
更新,这次终于可以自行运行ROM启动程序了
(之前的是测试工具相当于数据都是灌到嘴巴里的,但是这次是用一个简易的pc计数器来控制的,排除了一些实际运行中的错误)
离目标又近了一步
剩下的就是时间对它的考验了,鬼知道以后还会遇到多少问题
继上文,电路板画好了
不过还有一块位置剩下来,不知道做什么(这是两块板子之一)(笑)
周一,就要复工了。看到一个视频在讲基本的二极管PN结,好几天前发现的。今天把儿子拽过来,看。没想到视...
他我知道,就是benblue嘛,不过那些并不是他自己做,而是搬运并配音国外的beneater的视频,然后还顺带把套件搬运到国内来,中间的利润估计也挺大的,不过搬运了这么多视频似乎也可以体谅,不知视频和套件是否获得原作者的许可,具体什么来头不大清楚
把上下两张板子做好了,可以看看
以后文件直接上传github,方便控制版本:
XXXXXXXXXXXXXXXXXX/Left-Hand/74-gate-computer
不过kicad的覆铜不敢恭维,只要是封闭图形中间就不覆铜,而且线距比较大(如果有更改选项的方法请告诉我),所以我一般是导入到立创之后生成gerber。不过这几天疫情嘛,打板恢复到20元了,不打也得打,只不过心里在滴血。
关于其他单元是否要做板子的话另议,一般先会用洞洞板做
接下来我检查一下库存,看看是否有缺少的元件
杂谈:最近入手了一个低压烙铁控制板,看看是否能加一个t12的头上去,我这个黄花907还是有些问题,可能存在漏电的现象(我家住顶层,还没有可用的地线)上次的一个芯片可能就是因为这个原因烧掉了,为避免经济损失,打算用这个自己做一个烙铁
把vga显卡做好了,显示的分辨率为256*240 60hz
通过在总线操作写入x,y地址,数据来实现图片的写入。使用了4块is62c256的sram进行乒乓工作,两块sram构成一个帧,一个帧在显示的同时写入另一个帧。8位色,届时通过R2R电阻分压网络实现DA。支持Y方向上的硬件滚屏,(x应该会考虑,方便制作多向卷轴,不过再加上去就占位置了),总计元件费约为70元,其中20元用于sram,亦可做其他开发板的显示模块
顺便说一下打板子的事,其实我一开始是想说尽早把之前的板子打掉了,但是看到20元钱心里还是很犹豫,现在都拖了这么久了,干脆就等到底吧
最近有空吧代码读取的部分做了,第一次给这个写真正意义上的程序(在vga上显示一个句号)
顺便做了一个编译器
以下为图片
plist = ["NON", "ACP", "AMR", "STL", "STR", "LDM", "BLLD", "BHLD", "AILD", "MLD", "STC", "CLC", "REC", "NF", "CAI", "CLD", "PCLLD", "PCMLD", "PCHLD", "INTE", "RD", "WT", "INTU", "GED", "JMP", "HLT", "JC", "JNC", "JZ", "JNZ", "JV", "JNV", "RET", "RESTC", "LDCL", "LDCH", "FINT3", "MMULD", "CLD", "DLD", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "SAM", "IVS", "WVGA", "YP", "LXB", "LX", "LYB", "LY"]olist = ["BUSO", "PCLO", "PCMO", "PCHO", "UO", "DO", "AOO", "ACO", "CO", "DO"]m = 0fpath = input()with open(fpath, "r") as file: lines = file.readlines() for i in range(len(lines)): lines[i] = lines[i].split()def findins(ins): global plist global m try: i = plist.index(ins) m = 0 except ValueError: i = olist.index(ins) m = 1 return idef delline(line): outline = "" ins = hex(findins(line[0])).replace("0x", "") if len(line) == 2: ins = gethex(ins, m, 1) outline += (ins + ",") num = hex(int(line[1])).replace("0x", "") if len(num) == 1: num = "0"+num outline += (num + ",") else: ins = gethex(ins, m, 0) outline += (ins + ",") if len(line) == 2: print(line[0] +" " + line[1] +" -> " + outline) elif len (line) == 1: print(line[0] + " -> " + outline) return outlinedef gethex(ins, m, n): if len(ins) == 1: ins = "0"+ins ins = hex(int(ins[0])+8*n+4*m).replace("0x", "")+ins[1:2] return insoutlines = ""for line in lines: if len(line) != 0: outlines += delline(line)print(outlines[0:len(outlines)-1])print(outlines.replace(",", " "))NONNON 127LXBLX 119LYBLYNON 255WVGA WVGA 126 LXBLX 120LYB LY 255WVGA 129LXBLX 255WVGA 126 LXBLX 121LYB LY 255WVGA 129LXBLX 255WVGA 127LXB LX 122LYBLY 255WVGAWVGAIVSJMP
电路文件(瞎取的):
图片:
200字以内,仅用于支线交流,主线讨论请采用回复功能。