我早就知道,通过使用 CRTC 将行高更改为两个像素,可以在 IBM CGA 上实现伪 160 x 100 图形模式。几天来,我一直在尝试完成此操作,但走到了死胡同。
Intel® Open Source HD Graphics and Intel Iris™ Graphics Programmer's Reference Manual声称我可以在第 45 页(或 PDF 中的第 59 页)通过写入最大扫描线寄存器来执行此操作,或者这就是我从中解释的内容。
我已经尝试直接写入内存地址 3B5,值为 00000001b,或者我相信 2 条扫描线的代码。当我在 DOSBox 中测试它时,这根本没有做任何事情。
如果您想查看我编写的将在 NASM 中组装的代码:
BITS 16
xor bx,bx
mov ax, 3b5h
mov es, ax
mov ah, 00000001b
mov BYTE [es:bx], ah ; write 00000001b to 0x03b5:0000, right?
cli
hlt
我对像这样的低级东西还不是很有信心,任何帮助都将不胜感激。