哪些库/代码负责在复古计算机中渲染终端?

时间:2017-01-07 03:33:13

标签: user-interface graphics io terminal retro-computing

例如,当您键入时,哪个库告诉计算机屏幕显示相应的ascii字符并相应地移动光标?

想象一下像旧的学校计算机(没有GUI)运行DOS或Basic ...什么/哪个库负责UI?

链接到源代码非常适合理解所述库的工作原理。

enter image description here

2 个答案:

答案 0 :(得分:3)

您发布的照片​​是在模式7下运行的BBC Micro。这是大多数规则的例外。模式7是低内存模式,其中没有像素,只有256个文本字符。 RAM中保留了1K的内存,以包含当时屏幕上显示的内容。电路板上的一个特殊芯片,称为视频ULA(Uncommited Logic Array)读取该存储器的内容并将其编码到输出。 ULA是ROM,程序员无法更改。

ZX81以类似的方式工作:256个可能的文本字符,没有像素。然而,ZX81的专用芯片较少,主CPU完成了大部分工作。

更常见的设置是每个像素都由内存中的多个位表示(通常需要每像素多于一位,因为必须指示颜色)。例子是模式1-6中的BBC;橡子电子;光谱; C64;还有很多其他人。当用户在屏幕上放置文本时,计算机ROM会将其转换为正确的像素。图形通常可以直接写入RAM,或者“绘制”。通过BASIC。然后,专用ROM芯片和电路将再次将该存储器提供给输出。这种方法需要更多的内存来显示。

每台8位计算机都有自己的方式来表示RAM中的显示。您需要获取您正在尝试编程的机器的手册(很容易在互联网上找到更好的已知Micros)。

如果你想看到内部的话,很多模拟器都是开源的。例如:https://github.com/stardot/beebem

答案 1 :(得分:0)

如果您有兴趣了解终端的内部结构以更好地了解它的工作原理并提供输入/输出,那么Bash是完全开源的。您可以下载最新的源代码here