在长模式下使用VGA绘制像素

时间:2017-10-17 20:11:07

标签: assembly operating-system att vga

如何在长模式下使用AT& T组件绘制像素? 我已经在实模式状态下启用了VGA模式。

1 个答案:

答案 0 :(得分:1)

我的代表只有1个,所以我不能发表评论,但是如果您接受此报告作为部分答复,则应该研究位平面。模式13很容易实现,因为在0xA000(64000字节)时,所有模式都可以容纳不到64k的内容,但是当图形模式需要的内存超过64k时,VGA适配器将采用过于复杂的位平面解决方案。

位平面是存储在VGA控制器内部存储器中的64k存储器块,其中至少包含这些“存储体”中的4个。您需要使用有关端口的输入和输出指令与VGA控制器进行对话,以便告诉VGA适配器要将哪个存储区映射到0xA000段,然后通过mov,xor等在0xA000上进行操作您会在模式13下使用....但是...在这里变得很复杂。

对于所有模式,这些存储区都不只是连续的块。在16位和24位彩色模式下,存储区中的单个字节只能代表RGB分量之一,而最终输出实际上是所有位平面相互重叠的组合,就像投影仪屏幕上的三张幻灯片一样,但是您只能操作一张幻灯片一次必须通过IN和OUT指令与VGA控制器进行对话,以告诉它您要使用的存储库。

如果我的记忆正确,则VGA控制器是16位总线,需要一次与一个字节进行通信,这使它更加烦人。我不确定这些端口,但您会在其中的任何列表中找到它们。

很抱歉,它不是一个完整的答案,而是一条调查的途径。 “ VGA位平面”。