函数大全(k开头)
<P align=center><FONT color=#0000ff size=3><B><FONT color=#cc0000>函数大全(k开头)</FONT></B></FONT></P>
<P><FONT color=#ff0000>函数名: kbhit </FONT>
功 能: 检查当前按下的键
用 法: int kbhit(void);
程序例: </P>
<P><FONT color=#0000ff>#include <CONIO.H></FONT></P>
<P><FONT color=#0000ff>int main(void)
{
cprintf("Press any key to continue:");
while (!kbhit()) /* do nothing */ ;
cprintf("\r\nA key was pressed...\r\n");
return 0;
} </FONT>
</P>
<P><FONT color=#ff0000>函数名: keep </FONT>
功 能: 退出并继续驻留
用 法: void keep(int status, int size);
程序例: </P>
<P><FONT color=#0000ff>/***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 </FONT></P>
<P><FONT color=#0000ff>/* reduce heaplength and stacklength
to make a smaller program in memory */
extern unsigned _heaplen = 1024;
extern unsigned _stklen = 512; </FONT></P>
<P><FONT color=#0000ff>void interrupt ( *oldhandler)(void); </FONT></P>
<P><FONT color=#0000ff>void interrupt handler(void)
{
unsigned int (far *screen);
static int count; </FONT></P>
<P><FONT color=#0000ff>/* For a color screen the video memory
is at B800:0000. For a monochrome
system use B000:000 */
screen = MK_FP(0xB800,0); </FONT></P>
<P><FONT color=#0000ff>/* increase the counter and keep it
within 0 to 9 */
count++;
count %= 10; </FONT></P>
<P><FONT color=#0000ff>/* put the number on the screen */
screen = count + '0' + ATTR; </FONT></P>
<P><FONT color=#0000ff>/* call the old interrupt handler */
oldhandler();
} </FONT></P>
<P><FONT color=#0000ff>int main(void)
{ </FONT></P>
<P><FONT color=#0000ff>/* get the address of the current clock
tick interrupt */
oldhandler = getvect(INTR); </FONT></P>
<P><FONT color=#0000ff>/* install the new interrupt handler */
setvect(INTR, handler); </FONT></P>
<P><FONT color=#0000ff>/* _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;
}
</FONT></P>
<P><FONT color=#ff0000>函数名: kbhit </FONT>
功 能: 检查当前按下的键
用 法: int kbhit(void);
程序例: </P>
<P><FONT color=#0000ff>#include <CONIO.H></FONT></P>
<P><FONT color=#0000ff>int main(void)
{
cprintf("Press any key to continue:");
while (!kbhit()) /* do nothing */ ;
cprintf("\r\nA key was pressed...\r\n");
return 0;
}
</FONT></P>
<P><FONT color=#ff0000>函数名: keep </FONT><FONT color=#0000ff>
<FONT color=#000000>功 能: 退出并继续驻留
用 法: void keep(int status, int size);
程序例: </FONT></FONT></P>
<P><FONT color=#0000ff>/***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 </FONT></P>
<P><FONT color=#0000ff>/* reduce heaplength and stacklength
to make a smaller program in memory */
extern unsigned _heaplen = 1024;
extern unsigned _stklen = 512; </FONT></P>
<P><FONT color=#0000ff>void interrupt ( *oldhandler)(void); </FONT></P>
<P><FONT color=#0000ff>void interrupt handler(void)
{
unsigned int (far *screen);
static int count; </FONT></P>
<P><FONT color=#0000ff>/* For a color screen the video memory
is at B800:0000. For a monochrome
system use B000:000 */
screen = MK_FP(0xB800,0); </FONT></P>
<P><FONT color=#0000ff>/* increase the counter and keep it
within 0 to 9 */
count++;
count %= 10; </FONT></P>
<P><FONT color=#0000ff>/* put the number on the screen */
screen = count + '0' + ATTR; </FONT></P>
<P><FONT color=#0000ff>/* call the old interrupt handler */
oldhandler();
} </FONT></P>
<P><FONT color=#0000ff>int main(void)
{ </FONT></P>
<P><FONT color=#0000ff>/* get the address of the current clock
tick interrupt */
oldhandler = getvect(INTR); </FONT></P>
<P><FONT color=#0000ff>/* install the new interrupt handler */
setvect(INTR, handler); </FONT></P>
<P><FONT color=#0000ff>/* _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;
}</FONT></P>
页:
[1]