gpt4 book ai didi

c - 在 windows/dos 中改变屏幕字符大小写的 TSR 程序

转载 作者:太空宇宙 更新时间:2023-11-03 23:54:00 25 4
gpt4 key购买 nike

我想知道我们如何使用 C 更改屏幕上字符的字母。这是一个使用 dos.h 头文件的 TSR 程序。

最佳答案

我可能能够从我记得我早期本科生的经历中部分地帮助你。

在 DOS 中,地址 0xB8000000(0xB800:0 作为 segment:offset 在注释中正确指出)是文本模式视频内存的起始地址(0xA8000000用于图形)。写入此区域的任何内容都会直接复制到 vga 卡。现在屏幕上的每个字符都由两个字节组成。第一个字节是 ascii 字符,第二个字节是颜色。

实际上,您采用 16 位 c 中的远指针(因为普通的近指针不起作用)并将其分配给上述地址。然后假设您的屏幕尺寸 (25*80) 或任何 * 2 是填充屏幕的单字节地址总数。

我记得我用上面的方法编写了一个简单的 printf 函数的等价物。

回到您的问题,您必须编写代码,从上面的地址开始循环遍历所有偶数地址,直到屏幕大小。偶地址因为奇数代表颜色。在那里它检查分配的字符是否是有效的 ascii 并根据需要添加或减去,例如'A' + 32 会得到 'a' 等等。

关于何时您的上述程序执行此操作的问题仍然存在。我相信你可以在 dos.h 中有一些中断或类似的东西,每次任何屏幕字符改变时都会触发。但是这部分我的内存不是很清楚。

看看这是否适合你。

关于c - 在 windows/dos 中改变屏幕字符大小写的 TSR 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12825511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com