问题标签 [vesa]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
graphics - 在 DOSBox 下列为支持的无法识别的视频模式
我注意到使用 VGA/VESA 编程的 DOSBox 中出现了一些相当奇怪的问题。
运行 VESA BIOS 函数 01h,然后将偏移量 14 处的值所指向的列表的条目打印到缓冲区中,直到达到 -1 时打印以下条目:
在 TurboC++ for DOS 中执行此操作的代码是:
基本上,我不明白这些模式中有很多是什么。其中一些,例如高达 117,我可以找到文档,但对于其中的很多,例如 150 和超过 200 的所有内容,我找不到任何关于这些模式实际是什么的迹象。谁能帮我解决这个问题?
assembly - 无法返回 VBE 模式信息
我终于设法设置了一个 VBE 模式,它工作得很好。
现在我想获取线性帧缓冲区的物理地址以开始在我的内核中绘制像素等...
为此,我使用该函数01h
返回 VBE 模式信息,但它不起作用。
这是我的代码的一部分:
assembly - 将水平和垂直线绘制到 VBE 返回的 LFB 的结果不正确
我终于设法使用 VESA BIOS Extensions (1920px * 1080px, 24bpp) 在屏幕上绘制了一个青色像素。
我尝试以这种方式使用“for循环”在屏幕上绘制一条青色水平线:
但是,这不起作用:它会画一条绿线。
当我尝试使用绘图/绘图像素代码再次绘制垂直线时,它也不起作用。它在各处绘制具有随机颜色的像素。以下是我使用该DrawPixel
函数绘制垂直线的方法:
有什么办法可以解决这些问题?
c - 如果我在内核中添加一个 while 循环,Qemu 会重新启动
我写了一个当键盘控制器未准备好时挂起的while循环:
但是现在每次我尝试启动内核时 qemu 都会重新启动。有时我可以在很短的时间内看到 vga 输出。我试图删除 inb,它仍然会重新启动,除非我删除它
编辑:
这是完整的代码:
当我尝试在其中运行我的内核时,bochs 抛出了这个错误:
INT32 也来自这里:https ://gist.github.com/carlosascari/35dba95ee3118ebf61f4bd1625f4fa11
assembly - 如何使用 vga 调色板
我切换到 VESA 模式 105h,这是一种 256 色模式。当我使用 AX = 4F09h 检查调色板数据时,我得到的值与屏幕上显示的颜色相匹配。
当我将模式切换到 118h(16.8M 颜色模式)时,我检查了调色板表,即使显示的颜色不同,相同的值仍然存在。
如何获取我切换到的新模式的调色板数据?或者,也许我没有正确理解整个概念。有人可以向我解释如何获取特定模式的调色板值吗?
c - VESA 图形页面在保护模式下翻转
我试图弄清楚在 32 位保护模式下页面是如何翻转的。我运行0x4F0A
并将输出表存储在0x00008100
. 设置 LFB 位置的命令应该位于,我是否正确0x00008102
?知道这是该命令的位置,我将如何在不返回实模式的情况下更改 C 中 LFB 的位置?
x11 - X11 (xorg) 无法设置/更改分辨率 (linux x86)
我正在尝试将 10 英寸触摸屏(原始分辨率:1280x800)切换到 1024x768,但我尝试的所有操作都被忽略或导致错误。据报道,显示器支持分辨率,但xrandr --verbose
报告(我使用的是默认的 VESA 驱动程序):
如果我尝试通过更改分辨率xrandr --output default --mode 1027x768
,我会得到:
据我所知,只有第二行与我的问题有关;我不知道为什么xrandr
要配置crtc 0
,但我只连接了触摸屏。
失败了,我尝试直接使用以下配置模式xorg.conf
:
不幸的是,这不起作用,要么Xorg.log
显示以下内容:
为什么这不起作用?还有什么我可以尝试让显示器切换到 1024x768?
我已将完整的日志文件上传到Pastebin。
operating-system - 如何为我的操作系统编写自己的视频驱动程序?
在我编写自己的操作系统时,我想到了这个问题!
是否可以编写自己的视频驱动程序,如 VGA、VESA(在 BIOS 中)和 GOP、UGA(在 UEFI 中),如果是,那么如何?