上面所提的A单元就是译码器。计算机里充斥了各种译码器。下图为BIN转BCD再转七段信息的译码器(橙色条形方块下面的部分)。这个译码器经过极度的体积压缩保证它占据的体积是所能实现的最小的。因为一连串字符排在一起,如果译码器较宽,一个一个排在一起会占据较大空间使数字看起来松散。实际上整个工程每一个单元的体积我都尽了最大努力将其压缩,这耗费非常大的脑力和精力。关于如何在三维结构上压缩电路也可以单拉出来写几千字。
计算器还需要控制端按钮转BIN译码器,多位BIN转BCD译码器和多位BCD译码器转BIN用于和CPU沟通,这些比较复杂就不多说了和显示设备无关,上面部分已经介绍过算法。
字符显示器是点阵式的,即在一个5x5像素的点阵上显示一个字符,如下图5x5显示屏单元上的字母N,和七段显示器一样,后面一长串就是BIN转字符转5x5像素译码器。
我使用的是自己设计的缩减版的ASCII码,只有不到64个字符,如下表,我暂时称之为ASCII X码。
上表字符的BIN码都是一个字节的低6位,另外还有一个字符Enter表示换行,使用01000000表示的。
游戏中能做到的最小像素是2x2个红石灯,之所以不能做到1个红石灯为一个像素,是因为体积上不可能做到在那么小的空间里控制每一个红石灯的亮灭。而就算2x2的红石灯为一个像素,也很难做到点控。关于这些字符译码的具体电路结构不作详述,下面贴几张字符显示器的流水线结构,视频里也有介绍:
下图为字符显示器BIOS部分的输入端,有两个寄存器用轮发射方式发射字符信息,字符信息来自右边的只读储存器。
下图为双线程字符译码器,整个字符显示器模块都是时序控制的。
下图为字符显示器的输出部分,用总线连接一共两排24个单元,每个单元分显示器,锁存器和闪屏器。中间的后方是一个总的移位控制单元。全时序控制最快速的每3.4秒输出一个字符,可换行换页。
更多相关资讯请关注:我的世界专区