2012-01-13 25 views
1

我正在做我自己的操作系統(從零開始),它不基於任何預先存在的內核或操作系統。所以我知道屏幕分爲80 * 25和我知道,通常它就像是0xB8000可以容納的字符屬性在0xB8001和我知道只有那麼多如何讀取像JPG格式的圖像文件並逐個像素地顯示在屏幕上?

但是如何在像素上逐個像素地顯示圖像?我如何處理每個像素併發送數據(彩色)?

目前我使用0xB8000在屏幕上打印文本。所以如果我的地址是0xB8000,我是否需要一個像素? 我在這方面一點都不清楚。所以請幫助。

請注意,我沒有使用,我不能使用任何圖形庫,所以我從零開始構建我自己的操作系統。

我想要做這在C即使我知道組裝

回答

1

80x25的是所謂的「文本模式」,即在內存中的字節對應於顯示器上的字符。您通常將視頻適配器切換到「圖形模式」,並且您有像素空間。

您可以從這裏開始閱讀:CGA - Standard Text Modes

+0

謝謝。那麼我如何從文本模式切換到圖形模式?我如何處理每個像素或每個內存位置? – geek1000 2012-01-13 15:10:51

+0

在使用BIOS的實模式下,您可以用中斷'10h'來完成。對不起,細節隨着時間消逝。請參閱http://en.wikipedia.org/wiki/INT_10H – 2012-01-13 15:16:21

+0

謝謝先生。但我怎麼可以不調用中斷10小時,因爲每個顯示像素調用int10h可能不適合。 – geek1000 2012-01-13 15:22:12

相關問題