簡體   English   中英

在長模式下用VGA繪制像素

[英]Draw a pixel with VGA in long mode

如何在長模式下使用 AT&T 程序集繪制像素? 我已經在實模式狀態下啟用了 VGA 模式。

我的代表只有 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 位平面”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM