C 我正在使用DOS,我正在尝试使背景为白色
当我在DOS上写的时候C 我正在使用DOS,我正在尝试使背景为白色,c,assembly,dos,C,Assembly,Dos,当我在DOS上写的时候 tcc filename.c filename.exe 什么也没发生 #include <stdio.h> #include <dos.h> #include <stdlib.h> void StartVidScreen (void){ //320x200 } asm{ 在这里,我试图使背景白色,但它不工作 mov ah,0ffh mov al,' ' int 10
tcc filename.c filename.exe
什么也没发生
#include <stdio.h>
#include <dos.h>
#include <stdlib.h>
void StartVidScreen (void){ //320x200
}
asm{
在这里,我试图使背景白色,但它不工作
mov ah,0ffh
mov al,' '
int 10h
}
void main(void)
{
StartVidScreen(); // Start Video Screen
}
由于我们处于VGA模式13h,我将使用以下int 10h调用: :设置其中一个DAC(数模转换器)寄存器的RGB(红、绿、蓝)值 投入
- AX=1010h
- BX=DAC寄存器编号(0-255),在我们的例子中为寄存器0
- DH=红色值(0-63)
- CH=绿色值(0-63)
- CL=蓝色值(0-63)
mov ax,1010h
mov bx,0
mov dh,03fh
mov ch,03fh
mov cl,03fh
int 10h
在真正的老式硬件上测试,效果良好。由于我们处于VGA模式13h,我将使用以下int 10h调用: :设置其中一个DAC(数模转换器)寄存器的RGB(红、绿、蓝)值 投入
- AX=1010h
- BX=DAC寄存器编号(0-255),在我们的例子中为寄存器0
- DH=红色值(0-63)
- CH=绿色值(0-63)
- CL=蓝色值(0-63)
mov ax,1010h
mov bx,0
mov dh,03fh
mov ch,03fh
mov cl,03fh
int 10h
在真正的老式硬件上测试,工作正常。AFAIK没有BIOS中断
10h
功能0FFh
。一个空格
参数怎么能这样做呢?我正试图把背景变成白色,不管屏幕是320x200还是640x480,不管它是白色还是11111111b,我对中断这件事很陌生,所以任何人都可以帮助p???@sharbel在320x200 256色0xFF
中不是“白色”。其实里面是黑色的。在默认DOS调色板中,白色是15
和31
。但是,int10h
调用看起来无论如何都是无效的,因此它甚至不会将屏幕设置为FF
。但我对问题的第一部分更困惑。什么是“什么都没发生”,你能展示一下终端窗口的外观吗?使用DIR
检查当前目录中的文件。DESQView/TopView是一种窗口环境,它比Microsoft进入该领域的时间稍早一些,您可能听说过,也可能没有听说过。所以不是模拟器或图形卡。很可能在没有安装此软件的PC上它什么也做不了,更可能的是模拟器不费心实现对它的支持。在调试此类问题时,与其使用白色对白色的空格,不如使用更有趣的内容:mov ah,012h mov al,“x”
AFAIK没有BIOS中断10h
功能0FFh
。一个空格
参数怎么能这样做呢?我正试图把背景变成白色,不管屏幕是320x200还是640x480,不管它是白色还是11111111b,我对中断这件事很陌生,所以任何人都可以帮助p???@sharbel在320x200 256色0xFF
中不是“白色”。其实里面是黑色的。在默认DOS调色板中,白色是15
和31
。但是,int10h
调用看起来无论如何都是无效的,因此它甚至不会将屏幕设置为FF
。但我对问题的第一部分更困惑。什么是“什么都没发生”,你能展示一下终端窗口的外观吗?使用DIR
检查当前目录中的文件。DESQView/TopView是一种窗口环境,它比Microsoft进入该领域的时间稍早一些,您可能听说过,也可能没有听说过。所以不是模拟器或图形卡。很可能在没有安装此软件的PC上它什么也做不了,更可能的是模拟器不费心实现对它的支持。在调试此类问题时,与其使用白色的空格,不如使用更有趣的内容:mov-ah,012h-mov-al,'x'