9.2.1.3 显示存储器
对于所有的显示适配器,文本方式下显示字符的原理都是一样的,所不同的是各种适配器的视频显示存储器(又称为显存)的起始地址不同:对MDA,显存的起始地址为B000:0000;对CGA、EGA、VGA是B800:0000。每个字符的ASCII码和属性码字节存放于连续的两个字节中,动画表明了显示存储器单元与屏幕上字符的对应关系。
屏幕上某一字符位置在显存中的偏移地址可由下列公式算出:
Char_offset = Page_offset + ( (row×width)+column)×byte
在这个公式中,Page_offset是页偏移地址,width是每行可显示的字符数,在25×80的字符显示方式下,width =
80,Byte是表示一个字符所用的字节数,在字符显示方式中,byte = 2,row和column是相对于屏幕左上角位置(0,0)的行列坐标。例9.7定义了一个宏Video_addr计算屏幕位置在显存中的地址。
在25×80的文本显示方式下,屏幕可有2000个字符位置,因每个字符需要用两个字节来表示,所以显存容量需要4K字节(只使用4000字节)。如果显存有16K字节,则可保存4屏幕的字符数据,通常称为4页数据。对CGA、EGA、VGA的80列显示方式,0页在显存中的起始地址是B800:0000,1页是B800:1000,2页是B800:2000,3页是B800:3000。
|
|