chap3.4_光标寄存器
光标寄存器
光标位置信息位于显卡的2个光标寄存器中,总共16位,分为高位和低位存储。
例如。
标准VGA文本模式为 25 行 80 列
例如:
pos = 0 :表示 位于 1 行 0 列
pos = 27 :表示 位于 2 行 2 列
pos =1999 : 最右下角
读取光标值
光标寄存器的端口号是 0x3d4 和 0x3d5
0x3d4用来写入变量
0x3d5用来获取光标的值
| 端口 | 值 | 读写 |
|---|---|---|
| 0x3d4 | 0xe0 | 写入 |
| 0x3d5 | 光标高8位值 | 读取 |
| 0x3d4 | 0xf0 | 写入 |
| 0x3d5 | 光标低8位值 | 读取 |
获取光标和设置光标
1 | uint16 get_cursor(); |
实现:
1 | uint16 get_cursor() |
说明:
pos代表设置位置,标准VGA文本模式为 25 行 80 列,pos取值从0到1999. 通过get_cursor函数获取光标现在的位置,通过set_cursor设置光标在25 行 80 列文本模式的位置。