Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 组装图形/视频模式-如何创建视频模式?自定义尺寸的屏幕?_Assembly_Video_Graphics_Mode_Tasm - Fatal编程技术网

Assembly 组装图形/视频模式-如何创建视频模式?自定义尺寸的屏幕?

Assembly 组装图形/视频模式-如何创建视频模式?自定义尺寸的屏幕?,assembly,video,graphics,mode,tasm,Assembly,Video,Graphics,Mode,Tasm,如何在汇编(x86、tasm、DOSbox)中创建自己的视频模式 int 10hin assembly允许我打开图形模式并创建屏幕,但屏幕的尺寸非常有限。例如,如果我想在屏幕上有一个256色的选项,那么屏幕大小的唯一选项是320像素x200像素 我对这个问题做了大量的研究,但没有取得任何进展。我听说过一种叫做视频模式X的东西,但我不明白,我听说它也会破坏我实际屏幕的图形。我失去了希望,但今天我看到了一个关于视频模式的非常古老的答案,它说: “您可以通过直接写入视频卡的端口来创建自己的模式” 这句

如何在汇编(x86、tasm、DOSbox)中创建自己的视频模式

int 10h
in assembly允许我打开图形模式并创建屏幕,但屏幕的尺寸非常有限。例如,如果我想在屏幕上有一个256色的选项,那么屏幕大小的唯一选项是320像素x200像素

我对这个问题做了大量的研究,但没有取得任何进展。我听说过一种叫做视频模式X的东西,但我不明白,我听说它也会破坏我实际屏幕的图形。我失去了希望,但今天我看到了一个关于视频模式的非常古老的答案,它说:

“您可以通过直接写入视频卡的端口来创建自己的模式”


这句话解除了我在汇编中创建自定义大小屏幕的梦想。真的有可能吗?如果为真,我们如何使用端口(或任何其他方式)来创建我们自己的视频模式(设置屏幕尺寸和可能的颜色数量)?

在实践中可以创建的视频模式有限制。模式X实际上使用与640x480图形模式相同的视频计时,仅使用两倍宽度和高度像素即可获得320x240分辨率。任意分辨率和计时可能无法在真实视频卡和显示器上工作,并且模拟器可能不支持。有关实际VGA硬件上可能实现的功能的概述,请参阅:由于您使用的是DOSBox,您可能希望了解可用的SuperVGA模式,因为SuperVGA卡能够以比320x200高得多的分辨率支持256色。请参阅标准使用表。这里是一个简单的asm示例:正如您所看到的,您不仅限于320x200x8bpp,还有更大的分辨率,甚至颜色深度高达24bpp。如果您的硬件/软件不支持,请使用UNIVBE 5.1或更新版本。如前所述,X-mode在真正的VGA卡之外可能无法可靠工作