1

我一直在寻找BIOS数据区中内存地址461h(Cursor Start)和460h(Cursor End)的明确含义。

但我刚刚发现一些参考资料说它是光标的“大小”。也有人说是指扫描线,使用的值也相差很大(63h 和 00h 用于 MCGA;67h 和 00 用于 80x25 文本模式;或者 01h 和 00h)但仍然不够具体,似乎如果 VGA 寄存器被手动编程为标准图形或文本模式(更具体地说是文本模式,实际使用光标)而不是使用 INT 10h,则有必要调整这些值,以便 DOS 或 BIOS 本身可以保持一致配置。

我看过谷歌搜索结果的前 2 页(Ralf Brown、mcamafia.de、Wikipedia、TinyVGA、BIOS Central 等),但它们包含的信息无法让我准确描述这些值的作用或配置它们对应于 VGA 寄存器,所以我会盲目地对这些值进行编程。

那么对他们来说正确的定义是什么?

4

1 回答 1

1

我的理解:

460h-461h 是“光标形状”,大小=字。低字节保存结束扫描行号,而地址 40:61h 的高字节保存起始扫描行。对于视频模式 3,字符单元在 VGA 上通常为 16 条扫描线高。要关闭光标,请将结束扫描行号设置在起始扫描行号之上。

示例光标形状:

two line cursor at bottom:    0607h
lower half cursor:            0307h
upper half or quarter cursor: 0003h
full box cursor               0007h
blank cursor                  0100h
于 2012-04-23T15:46:18.550 回答