大约 15 年前,我曾经通过编写会直接修改显示器上的文本的糟糕代码来取悦自己并惹恼我的 CS 老师。这很容易通过在配备 VGA 的 PC 兼容机上访问 0xB8000 处的视频内存来完成。
快进到今天,我决定通过一个调试端口尝试我的旧技巧,让我可以访问读取物理内存。令我高兴的是,它仍然可以在我尝试的第一个平台上运行。然后,令人沮丧的是,我发现它不适用于许多其他系统。似乎它不适用于所有系统都具有 UMA(共享内存)图形。
因此,对于所有 BIOS 编写者、低级操作系统人员和视频驱动程序专家来说,一个问题 - 如果我在具有共享图形内存的 PC 兼容系统上处于常规 80x25 彩色文本模式,在实模式下,以及0xb8000 - 0xB8FFF 都是 0xFF 而不是给我屏幕上的内容,屏幕缓冲区到哪里去了?