我正在尝试在组装中使用全屏模式。我在dos中将颜色设置为浅蓝色,但是每当我尝试将其与全屏模式合并时,颜色都会改变。它变为绿色。
有没有办法使其相互兼容。我正在使用Tasm;文本板 视窗。谢谢。
这是我的宏
drawSquare MACRO color,cy,cx,dy,dx
mov ah,06
mov al, 0
mov bh,color
mov ch,cy
mov cl,cx
mov dh,dy
mov dl,dx
int 10h
endm
-------------------------------------------------
include macros.txt
.model small
.stack
.data
saveMode db ?
.code
main proc
mov ax, @data
mov ds, ax
call SetVideoMode
drawSquare 90h, 0h, 49h, 18h, 4fh
call RestoreVideoMode
mov ax, 4c00h
int 21h
main endp
SetVideoMode proc
mov ah, 0fh
int 10h
mov saveMode, al
mov ah, 0
mov al, 13h
int 10h
push 0A000h
pop es
ret
SetVideoMode endp
RestoreVideoMode proc
mov ah, 10h
int 16h
mov ah, 0
mov al, saveMode
int 10h
ret
RestoreVideoMode endp
end main
您将256色视频模式设置为13h。之后,您将一个颜色为90h的盒子涂上颜色。
这与您的DOS屏幕(文本模式)的颜色不匹配,因为只有前16个颜色数字匹配!
如果您的DOS屏幕使用BLUE = 1,则选择颜色1作为宏调用的第一个参数。
如果您的DOS屏幕使用GREEN = 2,则选择颜色2作为宏调用的第一个参数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句