2012-01-13 106 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