计算机的哪个部分可以产生字母?

计算机的哪个部分可以产生字母?

就像,在旧时代的带有 DOS 和其他程序的计算机中,它们只是在屏幕上显示固定宽度的字母……

这些计算机的哪个功能部分负责显示物理字符,因为(我认为)原始操作系统实际上不必制作每个像素,而是只是将与字符相对应的字节转储到内存中某个特殊位置,然后字符就会出现在屏幕上?

那么什么使得实际的字符与字节相对应呢?

答案1

正如 Ƭᴇcʜιᴇ007 的链接所描述的那样,在过去,这是由显卡中的专用硬件完成的,称为字符生成器。每个字符对应的像素模式将存储在 ROM(或 EPROM)中,地址对应于字符的 ASCII 值(或其他字符代码,因为当时非 ASCII 字符集更常见)。您可以通过将字符 ROM 芯片替换为包含不同位模式的芯片来更改字体。

然后,图形卡中一个相当简单的电路会动态生成像素,方法是从显示缓冲区读取一个字节,使用该字节作为地址从字符 ROM 读取一个字节,然后将其找到的任何内容一次一位地移出视频端口。由于运行该电路的时钟与 CRT 中电子束的运动同步(反之亦然),这些位对应于一条扫描线上的可见像素。当需要生成下一个扫描线时,电路会从每个 ROM 条目中的下一行字符数据中读取;或者如果它到达字符单元的底部,它会前进到显示内存中的下一行并再次绕回到字符内存的第一行。

这听起来可能比实际情况更复杂——它可以用计数器和简单的状态机来实现。

位图显示实际上更简单:它们只是读取显示内存中的所有内容,并将其填充到视频端口,而无需中间查找表。但是,这显然需要更多的 RAM,而 RAM 非常昂贵。

答案2

那么什么使得实际的字符与字节相对应呢?

在 PC 中,这种硬件被称为图形适配器(例如 CGA、EGA、PGA 和 VGA)或显示适配器(例如 MDA)。它们位于扩展板(又称卡)上。

请注意,图形适配器有两种模式:文本和图形。在文本模式下,写入视频内存的 ASCII 字符代码加上 IBM 定义的其他代码将使用内置字体以固定格式在屏幕上呈现文本(例如 VGA 为 24 行 x 80 列)。

文本模式并非如您所暗示的那样过时。现代操作系统通常具有 GUI 用户界面,因此主要使用图形模式。但由于必须支持 VGA,因此每个现代图形适配器仍可使用文本模式。BIOS 设置屏幕、启动程序、无图形的 Linux 和 Windows 蓝屏死机都仍使用文本模式。

答案3

“在以前使用 DOS 和其他操作系统的计算机时代”,字符由视频卡写入屏幕。如果程序想要将文本写入屏幕,它会调用 BIOS 中断。中断调用将包含 CPU AX 寄存器高字节中的指令(写入字符),而要打印的字符将位于低字节中。BIOS 会将其交给视频卡,然后视频卡会在屏幕上绘制字符。这一切都由硬件处理。

自从 DOS 消亡以来,情况就不再如此。现在,现代操作系统使用像素在屏幕上绘制。屏幕上字符的外观由字体渲染器服务处理,因此程序仍然可以简单地在屏幕上写入,而不必担心在屏幕上“绘制”字母。但字体渲染器仍然以像素的形式与视频硬件通信。

相关内容