【发布时间】:2016-09-17 23:28:26
【问题描述】:
我的编程环境是一个 MS-DOS 仿真器,我正在使用 16 位汇编编程。
我使用的是常规文本模式,可以打印字符和使用属性。
在屏幕的一部分上,我每秒钟都在绘制很多字符,数以千计的字符,这会创建一个漂亮的动画。
问题是,为了创建动画,首先我必须删除旧的,我基本上是打印 1000 次左右的空格字符。 (!) 现在,因为我正在这样做,所以每次我重绘动画时都会出现轻微的闪烁问题,这很明显并且非常烦人。
我正在使用视频服务来完成所有的输出和动画操作。所以我的第一个想法是想办法阻止屏幕刷新,重绘它,让屏幕自己继续刷新。
因为此过程每秒发生多次,而且必须多次发生,所以我发现任何其他清洁方法都不是很有帮助。
【问题讨论】:
-
准备缓冲区中的下一个数据。使用
int 10h函数02h将光标位置设置在左上角。打印缓冲区。顺便说一句,int 10h可以访问 BIOS 功能,而不是 MS-DOS 功能。
标签: video assembly x86 refresh dos