Я пишу драйвер терминала для пользовательской операционной системы. Я хочу, чтобы терминал понимал общие escape-последовательности vt-100, которые управляют расположением курсора, формой, цветами и т. Д. Поэтому при реализации функции «подчеркивание / подчеркивание» я хочу записать в регистр расположения подчеркивания VGA / SVGAПрограммирование видео - контроллер ЭЛТ регистрирует , но он не работает. Подчеркивание не отображается (на самом деле я не знаю, где искать). Ниже приведен код и снимок экрана с окном DOS.
; Read the Underline Location Register
mov dx, 0x3D4
mov al, 0x14
out dx, al ; 0x14 is the index of the Underline Location Register
mov dx, 0x3D5
in al, dx
; I want an underscore at 6th scan line, so I and 0b00101 with the value I got before
and ax, 0xE5 ; 0b1110 0101
push ax
; I write back the value to Underline regiser
mov dx, 0x3D4
mov al, 0x14
out dx, al
pop ax
mov dx, 0x3D5
out dx, al
Тем не менее, контур не отображается. Я пишу некоторый текст (второе шестнадцатеричное значение) после того, как я установил регистр подчеркивания, но без подчеркивания.