assembly Emu8086模拟器中的 Flink 文本

zlwx9yxi  于 7个月前  发布在  Flink
关注(0)|答案(1)|浏览(85)

如何使打印在控制台上的文本 Flink 。有一个8086中断,使 Flink ,但显然模拟器不支持它。
这就是我所说的中断。还有别的办法吗

mov ax, 1003h
mov bx, 1
int 10h
x3naxklr

x3naxklr1#

CGA/VGA文本模式下的 Flink 或变亮由CRT模式端口控制,其编号保存在BIOS变量中。它只涉及具有最高有效位设置的颜色,并且该模式控制背景颜色是否明亮或是否 Flink 。
例如0xE4(* 黄色上的红色 *)将更改为 * Flink 棕色上的红色 * 当 Flink 被启用时。
以下是我的旧TASM宏,可以使用此端口进行操作,也许会有所帮助:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;     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它的作品.

相关问题