视频显示卡一个直接写屏的例子
在文本DMA将从段B000H开始的4KB内存当显存,许多既具有文本模式又具有图形模式的适配器(CGA、EGA、MCGA、VGA)都使用B800H开始的16KB内存当作显存。在显存里,每一个字符显示位置都分配了2个字节。第一个字节(偶地址)包含有字符的ASCII码,通过一个字符发生器将其译码成屏幕上的点阵模式。第二个字节(奇地址)是属性字节。该字节的几个域控制了闪烁、高亮度和反显特性。
其字符属性格式为:
目前几乎所有PC机视频系统都是以6845视频控制器芯片为基础的。6845芯片有18个控制寄存器,其编号为0~17。前10个为确定水平及垂直方向的显示参数。程序设计人员不关注。
10、11及14、15号寄存器分别存放光标的形状及位置。12、13号寄存器处理分页;16、17号寄存器报告光笔位置。
由于程序员所用的寄存器都是成对的,因此需要先写地址寄存器,再写一个寄存器,接着再写地址寄存器,然后写第二个寄存器。由于端口号是相邻的在使用INC和DEC指令寻址最方便。
例9-1 写入6845芯片的11、12号寄存器(数据在BX中)