问题标签 [vga]
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.
memory - VGA和集成图形理论
英特尔网站说,我并不是真的想知道 VGA 的来龙去脉,而是想知道它如何工作(以及集成显卡)的基本原理——
所以这个被盗的内存被用作 VGA 适配器的帧缓冲区,VGA 图形控制器的任何读/写操作都将来自那里?
具有 1MB 被盗 VGA 内存的示例系统 -
因此,如果上述系统在 VGA 模式下运行,并且某些内容被写入旧版 VGA 地址范围(0xA0000 - 0xbffff),那么该过程会是什么?
目前我的理解是内存控制器会将其从 CPU 转发到 VGA 适配器,然后使用图形转换表 (GTT) 将其转换为 DRAM 顶部的物理地址,介于 03F0_OOOOh - 03FF_FFFFh 之间?
这是否意味着由于 VGA 适配器正在使用 MMIO 的地址范围,因此无法在 DRAM 中访问旧版 VGA 内存范围 0xA0000 - 0xbffff?
如果有人可以帮助解决这些问题,将不胜感激,
谢谢。
video - 组装 x86 视频模式
我正在尝试在装配(NASM)中创建一些基本的绘图例程。查看x86 BIOS 中断表,我发现提供一些视频处理服务的10h中断。
使用它,我设法想出了一个绘制正方形的例程,将中断调用配置为Write a Graphics Pixel (AH = 0Ch)。
正方形被正确绘制但时间太长,我可以看到它被填充了。顺便说一句,我在 QEMU 上运行我的代码。
我假设屏幕的刷新速度比指令的执行速度快。经过一番研究,我没有找到任何有用的内容。主要可能的解决方案是调整垂直同步并直接写入视频内存。
考虑到我使用的是视频模式12h (640x480 - 16 色),我的问题是:
1 - 直接写入显存比调用中断更快?
2 - 如何在视频内存空间中组织字节?每个像素占用一个字节(从地址 0xa000 开始)?
3 - 如何写入显存?简单地按顺序写入每个像素颜色?
4 - 通常,当显示器刷新屏幕时,它只是不时直接从视频内存中读取?
assembly - 如何从 VGA 控制器内存中手动恢复系统字体?
我可以使用带有非常不寻常的 VGA 系统字体的旧东芝 386 PC (T2000Sx) ;我想将其恢复为网站中的字体文件和文档。
如何编写一个程序,从 VGA 内存中读取字体数据并将其写入软盘?
系统几乎不能从软盘启动,内存很小(1MB 基本 + 9MB 扩展),也没有硬盘驱动器。它曾经通过并行端口上的 ZIP 驱动器引导 Debian 2.1,但这似乎不再起作用。
问题是以下组合:
是否有(DOS)程序可以做到这一点?(我还没有找到;但也许有?)
编程工具:我可以使用哪种语言/编译器?显然这台机器不会运行任何现代操作系统,所以 GCC / VS 是不可能的。20 年前,我有一些从程序集中手动编写 .COM 可执行文件的经验,但它已经生锈了;现在有更好的编程工具吗?
VGA标准:在地址空间的哪个地址可以找到字体数据,应该读取多少字节?我还没有在其他在线资源中找到这个。
arduino - 使用 Arduino、Gameduino 1.0 (VGA) 和 GLCD/TFT 显示器绘制静态线
我对此非常陌生,所以请耐心等待。我正在尝试使用 Arduino UNO 和 Gamduino 1.0 在 VGA 显示器上设计用户界面,并且需要帮助绘制两个轴(x 和 y)。本质上,我需要在显示器上绘制两条静态线,其中 x 轴在显示器上从左向右平移,y 轴距离显示器左侧 1/8,从顶部平移 1/2显示直到底部。
希望这是有道理的。
graphics - 以编程方式调整显示器颜色
我想创建一个简单的滑块,它将在硬件级别调整显示器中的一种颜色。我想这样做以将颜色调整为眼睛看到的确切方式。我知道探查器会完成大部分工作,但我担心另外 10% 的工作不太正确,可以手动调整。我不太确定整个显示器是如何工作的。有人可以指出我开始研究的方向吗?
到目前为止,我看到的障碍是让它在所有显卡上都工作相同和/或如果在后台运行另一个颜色配置器,则尝试对显示器进行双重配置。我希望能够编写一个可以在任何计算机上运行的程序。这甚至实用吗?
c++ - os dev : vga 打印字符串和奇怪的编译器行为
我正在尝试实现一个非常简单的函数来在我的内核中打印字符串。
这个麻烦对我来说似乎很奇怪,我在想我可能错过了一些重要的事情,但我不知道是什么。
所以,我有一个不起作用的代码:
请查看此摘录中的第 3 行: if (c=='\n') 如果我将其更改为无辜者会怎样: if (false) 那么它神奇地完美地工作......它不适用于 if(c =='T') 或其他任何东西,反正我的测试代码中还没有 '\n' :
我想知道是否出于某种模糊的原因,
部分正在制造麻烦,但如果我用分号更改它并没有更好的效果......
但这还不是全部。我正在使用这些标志进行编译:
如果我删除优化标志“-O2”,那么它在任何情况下都不会起作用。
我不明白我想念什么...请,你能帮帮我吗?我快疯了:P
=============编辑==============
经过调查,默认 qemu 设置似乎不支持 mtrrs(我使用特定的 cpu 设置检查了这一点)。在这里检查代码:(值得注意的是,osdev 说检查第 5 位,而 intel 说第 12 位,后者似乎在 qemu 下工作)
这是我当前的代码库。
这里的 asm 部分是设置 cr0 中的第 30 位,英特尔声称这是禁用缓存。这仍然会打印第一个字母,而打印较短的字符串则很好......
我不知道现在要搜索什么。你有什么主意吗 ?十分感谢
=============编辑==============
哇,刚刚发现了一个不错的bug...
解决方案在链接描述文件中:
变成:
只是因为 clang 生成的不是.rodata部分,而是.rodata.str1.1部分。这导致缺少rodata字符串,除非它短到4个字符,在这种情况下,它会被表示为一个int ...与-O2。
text - Matrox 图形适配器使用的经典 VGA 文本控制台字体
早在 199[456] 时,我正在使用 Linux 和 Matrox 图形适配器。对于编程,我经常使用文本模式,并没有费心启动 X11。这些显卡允许非常高的文本分辨率,并且仍然具有非常易读的字体。有时我想测试一下这种字体是否适合在 X11 上进行编程——但我找不到这种字体来试一试!
我进行了深入的搜索,例如这里,但似乎没有一种字体看起来像 Matrox 字体。所以,问题:
- 使用了哪种字体?是在那些显卡上看起来更好的常规控制台字体吗?
- 这个字体可用于 X11 吗?哪一个?
- 有没有例子/截图?
如果有人能解释我只是产生幻觉还是我的记忆是准确的,我会非常高兴。
更新:我已经找到了一个很好的资源。选择字体Px437_IBM_VGA_8x16.ttf
并将终端设置为 12px 非常接近我的记忆。由于现在显示器的分辨率要高得多,字体变得非常小,放大它看起来有点不对劲。我将不得不进行实验。
verilog - 查询: VGA Controller (Verilog) Basys 2 board 中使用的时钟分频器错误
在我的 VGA 控制器(Basys 2 板)中加入时钟分频器(40 MHz)时出现错误。我的编码错误是 - 输入缓冲区 instance_name/CLKIN_IBUFG_INST 的端口 I 连接到 GND。请帮助消除此错误!
代码如下:
vhdl - 带有 VHDL 的 VGA 控制器
我正在尝试通过一些书籍和 Terasic 的 Altera DE1 开发套件来学习 VHDL 编程。
这里的问题是我正在尝试对 VGA 控制器进行编程,使其能够以 640x480 的分辨率工作(尽管我的屏幕是 1280x1024 的 TFT LCD)。
我的代码有一些问题。
我正在使用 FSM 来制作垂直和水平信号,另一个块来驱动 RGB 输入以及来自 DE1 的 27 MHz 时钟。
我认为代码一定有问题,因为我在屏幕上打印的图像尺寸不正确(640x480)而是更大(大约1174x980)。
到现在为止,我正试图在屏幕上只放一种颜色来简化它,直到我发现错误为止。
我的项目有 3 个文件,1 个用于块 RGB,1 个用于 FSM,另一个用于实例化它们。
我将不胜感激解决此问题的某种帮助,因为我已经努力解决了这个问题,但我看不出错误在哪里。
非常感谢!
奥马尔
VGA 控制器文件
FSM 同步文件
VGD 显示文件
c++ - 我可以强制监视器使用批处理/C++ 切换输入吗
我有 2 个显卡(一个集成的 Intel 卡和一个 NVIDIA 卡),它们都连接到一个显示器(VGA / HDMI)。
以某种方式说它们都有不同的输出(我有一个 Windows 7 和一个 VM,每个都使用一张卡)。
是否有任何命令/API 可以发送到显示器,以便它可以自动将其输入从 VGA 切换到 HDMI 或其他方式?