如何使移植的游戏正常运行

Author: 上海 屠云轩 Date: 1994-02-25

        由于硬盘、速度等的提高,使许多原先在PC_XT,PC_AT机上的优秀游戏程序不能在PC_286,PC_386上正常运行,其原因是多样的,但最突出的问题是:原先在PC_XT、PC_AT机上的游戏在PC_286,PC_386上运行时,游戏速度过快,使操作者无所适从,因此我用C语言编写了一段延时程序,来降低游戏程序的运行速度,使操作者能在PC_286、PC_386上正常地操纵游戏。
        其原理主要是通过接管时钟中断IC(十六进制)来进行延时,用户可以通过改变参数COUNTER的值来延时的大小。
        以下是我的源程序清单,已经在PC_286,BLAND C++环境下调试通过。
        #include <stdio.h>
        #include <dos.h>
        #define COUNT 200001
        extern unsigned_heaplen=1024;
        extern unsigned_stklen=512;
        void interrupt(*old_handler)(void);
        void interrupt clk_sv(void);
        long counter;
        main()
        {
        old_handler=getvect(0x1c);
        setvect(ox1c,clk_sv);
        keep(0,(_SS+(_SP/16)-_psp));
        }
        
        void interrupt cld_sv(void)
        {
        for(counter==01;counter<COUNT;counter++);
        old_handler=0;
        }