Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C DOS中字符表的内存地址是什么?_C_Memory_Assembly_Dos_Vga - Fatal编程技术网

C DOS中字符表的内存地址是什么?

C DOS中字符表的内存地址是什么?,c,memory,assembly,dos,vga,C,Memory,Assembly,Dos,Vga,DOS中字符表的地址是什么?我们可以通过操作每个字符的像素来创建新的字体和符号 我知道用BIOS中断来更改它,但我只需要dos中字符表的内存地址就可以直接访问。如果我记得正确,并且图形卡没有太多变化(我上一次使用它是在15年前),字体信息不在给定的内存地址,它被加载到图形卡内存中。我已经记不起它是如何完成的了(我在20年前做过这件事),但你可能想看看它的。根据你可以自己(有点;参见字符映射选择寄存器)。访问该寄存器是非常困难的 您可能还想看看哪些内容也涉及到这个主题(并且可能更容易理解) 编辑:

DOS中字符表的地址是什么?我们可以通过操作每个字符的像素来创建新的字体和符号


我知道用BIOS中断来更改它,但我只需要dos中字符表的内存地址就可以直接访问。

如果我记得正确,并且图形卡没有太多变化(我上一次使用它是在15年前),字体信息不在给定的内存地址,它被加载到图形卡内存中。

我已经记不起它是如何完成的了(我在20年前做过这件事),但你可能想看看它的。根据你可以自己(有点;参见字符映射选择寄存器)。访问该寄存器是非常困难的

您可能还想看看哪些内容也涉及到这个主题(并且可能更容易理解)

编辑:。他使用()来交换一个字符,但在CX寄存器中,您实际上可以知道应该交换多少个字符

编辑2:找到

编辑3:在上一个链接的文档中,有以下内容:

直接访问字符生成器RAM的编程

以下序列设置访问字符的EGA和VGA- 发电机存储器。有关信息,请参阅EGA I/O端口

在这些输出之后,字体数据从a000:0开始,第一个字节开始 字符的字体数据从字符的ASCII值*32开始。 读取或写入字体数据后,将恢复以下顺序 将EGA/VGA转换为正常操作:


嗯,我找不到“迟到20年”的确切原因这与DOS无关,但与VGA硬件有关。搜索“vga字符生成器”或类似内容,您可能会找到相关信息。如果我没记错的话,它可能需要端口IO而不是内存映射IO。这怎么“不是一个真正的问题”?投票决定重新打开。这可能是关于“过时”的技术,但显然是关于编程问题。我们能重新讨论这个问题吗?我100%理解这个问题,这是非常愚蠢的。我是从谷歌搜索中找到这个问题的答案的,那里有一个经过充分研究的答案。如果我记得正确的话(我也已经十多年没有使用它了),它在图形卡上,但它映射到一个内存地址。两者都有。它位于显卡上的ROM中,但也可以通过某种方式进行更改。int 10h是BIOS中断向量。他明确表示,出于某种原因,他不想走那条路。@我的正确意见是:对,错过了。最后一个文档描述了如何使用DMA,我引用了它。越过障碍进入+1区域:D
out 3c4H, 0402H   Mask reg; enable write to map 2
out 3c4H, 0704H   Memory Mode reg ; alpha, ext mem, non-interleaved
out 3ceH, 0005H   Graphics Mode reg; non-interleaved access
out 3ceH, 0406H   Graphics Misc reg; map char gen RAM to a000:0
out 3ceH, 0204H   Graphics ReadMapSelect reg; enable read chargen RAM
out 3c4H, 0302H   Mask reg; disable write to map 2
out 3c4H, 0304H   Memory Mode reg; alpha, ext mem, interleaved
out 3ceH, 1005H   Graphics Mode reg; interleaved access
out 3ceH, 0e06H   Graphics Misc reg; regen buffer to b800:0
out 3ceH, 0004H   Graphics ReadMapSelect reg; disable read chargen RAM