我的程序应设置非闪烁文本光标。我只发现了如何隐藏光标(使用10h)。光标应可见但不闪烁。有可能吗?
VGA使用属性字节的位7指示闪烁。您可以关闭此功能,以便可以使用位7指示强度。
我现在只有一个旧笔记Archive.org,但是我一直在使用一些已经工作了一段时间的代码。
; =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
; make sure the 'blink' bit is off
; this is so we can print bright colors instead of the
; vga using bit 7 as the blink bit.
mov dx,3DAh ; reset the flip-flop
in al,dx
mov dx,3C0h ; index 0x10 (20h + 10h)?
mov al,30h
out dx,al
inc dx ; clear bit 3 to disable blink
in al,dx
and al,(~(1<<3))
dec dx
out dx,al
[请注意,这是假设有一个标准的VGA,这些特定的寄存器位于0x3DA,0x3C0和0x3C1,它将从TRUE DOS(而不是Windowed Session)运行,以及许多其他假设。
同样,它必须在TRUE DOS计算机上,或者至少在实际使用VGA硬件而不是模拟VGA的平台上。另外,如果现代硬件甚至不再具有VGA硬件,也不要感到惊讶。
如杰斯特所说,在所有这些假设下,最好隐藏光标并自己绘制。
但是,如果您确实可以使用它,并且应该在标准的老式机器中使用它,则可以使用强度颜色,即:亮白色,亮蓝色等。