通过IO/端口的VESA

通过IO/端口的VESA,io,x86,vbe,vesa,Io,X86,Vbe,Vesa,如何通过x86 CPU的IO/端口访问vesa模式? 我已经试过一个只对博世有用的代码 private static void SetVideoMode(ushort width, ushort height, ushort depth) { WriteCommand(0x4, 0x00); WriteCommand(0x1, width); WriteCommand(0x2, height); WriteCommand(0x3, depth);

如何通过x86 CPU的IO/端口访问vesa模式? 我已经试过一个只对博世有用的代码

private static void SetVideoMode(ushort width, ushort height, ushort depth)
{    
    WriteCommand(0x4, 0x00);
    WriteCommand(0x1, width);
    WriteCommand(0x2, height);
    WriteCommand(0x3, depth); 
    WriteCommand(0x4, 0x1 | 0x40 );
    PortIO.Outb(0x3c0, 0x20);
}
你不能。VESA(VBE)是一个标准BIOS驱动程序框架,它为不同的视频卡提供单一接口

要直接插入I/O端口或内存映射寄存器,您需要限制自己使用基本的VGA模式和功能,或者了解特定视频卡的确切细节

当然,这是VBE最初设计用来解决的问题。

你不能。VESA(VBE)是一个标准BIOS驱动程序框架,它为不同的视频卡提供单一接口

要直接插入I/O端口或内存映射寄存器,您需要限制自己使用基本的VGA模式和功能,或者了解特定视频卡的确切细节

当然,这是VBE最初设计用来解决的问题。

你不能。VESA(VBE)是一个标准BIOS驱动程序框架,它为不同的视频卡提供单一接口

要直接插入I/O端口或内存映射寄存器,您需要限制自己使用基本的VGA模式和功能,或者了解特定视频卡的确切细节

当然,这是VBE最初设计用来解决的问题。

你不能。VESA(VBE)是一个标准BIOS驱动程序框架,它为不同的视频卡提供单一接口

要直接插入I/O端口或内存映射寄存器,您需要限制自己使用基本的VGA模式和功能,或者了解特定视频卡的确切细节



当然,这就是VBE最初设计用来解决的问题。

语言,平台缺失。。任何标签都可以知道你在说什么吗?你需要在问题中包含
WriteCommand
的定义,否则我们不知道你的代码在做什么。语言,平台缺失。。任何标签都可以知道你在说什么吗?你需要在问题中包含
WriteCommand
的定义,否则我们不知道你的代码在做什么。语言,平台缺失。。任何标签都可以知道你在说什么吗?你需要在问题中包含
WriteCommand
的定义,否则我们不知道你的代码在做什么。语言,平台缺失。。有标签知道你在说什么吗?你需要在你的问题中包括
WriteCommand
的定义,否则我们不知道你的代码在做什么。确切地说,我是Atom OS(www.atomos.tk)的开发人员,我们正在用c语言制作操作系统,用c语言编写自己的编译器,我想实现VESA/VBE我该怎么做?您需要一个用于调用16位实模式函数的thunking机制,在这种情况下,BIOS中断。您还需要以某种方式将生成的物理内存映射到您的地址空间。看看基本的后备磁盘I/O和VGA图形驱动程序是如何实现的,VBE应该是类似的。我不明白你到底想说什么……你能帮我实现吗?关于我们的编译器…我将非常感谢:Dx86处理器从70年代就已经存在,在这一点上,系统编程是一个(腐烂的)兼容性层洋葱。您可能无法从1985年引入的正常32位保护模式调用VBE函数,而必须将处理器切换到16位虚拟8086模式。为此,您需要在全局描述符表中设置一个调用门,以调用VBE中断的16位trampoline函数,注意从选择器的较低16位调用,《英特尔体系结构手册》第3卷详细介绍了这一点,换句话说,请与处理低级虚拟内存管理和引导代码的人员交谈。他们应该能够帮助您实现VBE调用,并准确地映射帧缓冲区,我是Atom OS(www.atomos.tk)的开发人员,我们正在用c语言制作操作系统,使用自己的c语言编译器,我想实现VESA/VBE我怎么能?您需要一种用于调用16位实模式函数的敲击机制,在这种情况下,BIOS中断。您还需要以某种方式将生成的物理内存映射到您的地址空间。看看基本的后备磁盘I/O和VGA图形驱动程序是如何实现的,VBE应该是类似的。我不明白你到底想说什么……你能帮我实现吗?关于我们的编译器…我将非常感谢:Dx86处理器从70年代就已经存在,在这一点上,系统编程是一个(腐烂的)兼容性层洋葱。您可能无法从1985年引入的正常32位保护模式调用VBE函数,而必须将处理器切换到16位虚拟8086模式。为此,您需要在全局描述符表中设置一个调用门,以调用VBE中断的16位trampoline函数,注意从选择器的较低16位调用,《英特尔体系结构手册》第3卷详细介绍了这一点,换句话说,请与处理低级虚拟内存管理和引导代码的人员交谈。他们应该能够帮助您实现VBE调用,并准确地映射帧缓冲区,我是Atom OS(www.atomos.tk)的开发人员,我们正在用c语言制作操作系统,使用自己的c语言编译器,我想实现VESA/VBE我怎么能?您需要一种用于调用16位实模式函数的敲击机制,在这种情况下,BIOS中断。您还需要以某种方式将生成的物理内存映射到您的地址空间。看看基本的后备磁盘I/O和VGA图形驱动程序是如何实现的,VBE应该是类似的。我不明白你到底想说什么……你能帮我实现吗?关于我们的编译器…我将非常感谢:Dx86处理器从70年代就已经出现了,现在也是如此