如何使打印在控制台上的文本 Flink 。有一个8086中断,使 Flink ,但显然模拟器不支持它。这就是我所说的中断。还有别的办法吗
mov ax, 1003h mov bx, 1 int 10h
x3naxklr1#
CGA/VGA文本模式下的 Flink 或变亮由CRT模式端口控制,其编号保存在BIOS变量中。它只涉及具有最高有效位设置的颜色,并且该模式控制背景颜色是否明亮或是否 Flink 。例如0xE4(* 黄色上的红色 *)将更改为 * Flink 棕色上的红色 * 当 Flink 被启用时。以下是我的旧TASM宏,可以使用此端口进行操作,也许会有所帮助:
0xE4
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; DisableBlink ;; Background color is bright instead of flash. ;; IN: - ;; OUT: AX=? ;; BX=0 ;; DX=CRT mode select port MACRO DisableBlink PUSH DS SUB BX,BX MOV DS,BX MOV DX,[0463h] ; CRTC port ADD DL,4 ; mode select port MOV AL,[0465h] ; old CRT mode AND AL, NOT 20h; diable blink OR AL,09h ; visible text mode OUT DX,AL ; CGA,HGA MOV [0465h],AL ; new CRT mode MOV AX,1003h INT 10h ; disable blink EGA POP DS ENDM ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; EnableBlink ;; Background color blinks if attrib. bit 7 is set. ;; IN: - ;; OUT: AX=? ;; BX=1 ;; DX=CRT mode select port MACRO EnableBlink PUSH DS SUB BX,BX MOV DS,BX MOV DX,[0463h] ; CRT mode port ADD DL,4 ; mode select port MOV AL,[0465h] ; old CRT mode OR AL,29h ; enable blink OUT DX,AL ; CGA,HGA MOV [0465h],AL ; new CRT mode MOV AX,1003h INC BL INT 10h ; enable blink EGA POP DS ENDM
我不知道emu 8086,但在DoxBox它的作品.
1条答案
按热度按时间x3naxklr1#
CGA/VGA文本模式下的 Flink 或变亮由CRT模式端口控制,其编号保存在BIOS变量中。它只涉及具有最高有效位设置的颜色,并且该模式控制背景颜色是否明亮或是否 Flink 。
例如
0xE4
(* 黄色上的红色 *)将更改为 * Flink 棕色上的红色 * 当 Flink 被启用时。以下是我的旧TASM宏,可以使用此端口进行操作,也许会有所帮助:
我不知道emu 8086,但在DoxBox它的作品.