C语言函数集(九)

来源:互联网 发布:莱州网络花店 编辑:程序博客网 时间:2024/06/08 00:01
#include <conio.h>int main(void){   cprintf("Press any key to continue:");   while (!kbhit()) /* do nothing */ ;   cprintf("\r\nA key was pressed...\r\n");   return 0;}/***NOTE:   This is an interrupt service routine.  You   can NOT compile this program with Test   Stack Overflow turned on and get an   executable file which will operate   correctly.  Due to the nature of this   function the formula used to compute   the number of paragraphs may not   necessarily work in all cases.  Use with   care!  Terminate Stay Resident (TSR)   programs are complex and no other support   for them is provided.  Refer to the   MS-DOS technical documentation   for more information.  */#include <dos.h>/* The clock tick interrupt */#define INTR 0x1C/* Screen attribute (blue on grey) */#define ATTR 0x7900/* reduce heaplength and stacklengthto make a smaller program in memory */extern unsigned _heaplen = 1024;extern unsigned _stklen  = 512;void interrupt ( *oldhandler)(void);void interrupt handler(void){   unsigned int (far *screen)[80];   static int count;/* For a color screen the video memory   is at B800:0000.  For a monochrome   system use B000:000 */   screen = MK_FP(0xB800,0);/* increase the counter and keep it   within 0 to 9 */   count++;   count %= 10;/* put the number on the screen */   screen[0][79] = count + '0' + ATTR;/* call the old interrupt handler */   oldhandler();}int main(void){/* get the address of the current clock   tick interrupt */oldhandler = getvect(INTR);/* install the new interrupt handler */setvect(INTR, handler);/* _psp is the starting address of the   program in memory.  The top of the stack   is the end of the program.  Using _SS and   _SP together we can get the end of the   stack.  You may want to allow a bit of   saftey space to insure that enough room   is being allocated ie:   (_SS + ((_SP + safety space)/16) - _psp)*/keep(0, (_SS + (_SP/16) - _psp));return 0;}
原创粉丝点击