Вот нашел исходник из биоса. Должен работать 99,99%, crtc_addr установить как 3D4h
Код:
ATC_INDEX equ 03C0h
crtc_addr dw ? ; I/O address of CRTC (3D4h or 3B4h)
;----------------------------------------------------------------------
; GetIndexRegister - Read the value of an indexed register
;
; Entry: DX = I/O port
; AL = Index to read
; Exit: AH = Data read
;
; DX and AL are preserved
;----------------------------------------------------------------------
public GetIndexRegister
GetIndexRegister proc near
assume ds:nothing, es:nothing
out dx,al
mov ah,al
inc dx
in al,dx
dec dx
xchg al,ah
ret
GetIndexRegister endp
; Subfunction 003h:
; ToggleIntensityBlinkBit - Set the intensity or blinking bit in the ATC mode register
;
; Entry: DS = Seg0
; BL = Toggle state:
; 0: Enable intensity
; 1: Enable blinking
; Exit: None
;
public ToggleIntensityBlinkBit
ToggleIntensityBlinkBit proc near
assume ds:Seg0, es:nothing
push dx
mov dx,[crtc_addr]
add dl,6
cli
in al,dx
mov dl,ATC_INDEX and 0ffh
mov al,030h
call GetIndexRegister ; This leaves ATC in data state
mov al,bl
and al,1
shl al,3
and ah,0F7h
or al,ah
out dx,al
mov al,20h
out dx,al
sti
pop dx
ret
ToggleIntensityBlinkBit endp