关于bioskey()函数的一个小疑问。该如何解决

关于bioskey()函数的一个小疑问。
#include<dos.h>
#include<stdio.h>
#include<stdlib.h>
#define ang 3.14159/5
int main()
{
int gdriver=DETECT,gmode;
int i,x0=320,y0=240,R;
int low=420;
printf("R:");
scanf("%d",&R);
initgraph(&gdriver,&gmode,"c:\\tc30\\bgi");

do{
for(i=0;i<10;i++)
{
setcolor(BLUE);
outtextxy(x0+R*cos(ang*i),y0+R*sin(ang*i),"nihao");
delay(100);
setcolor(BLACK);
outtextxy(x0+R*cos(ang*i),y0+R*sin(ang*i),"nihao");
}
}while(bioskey(0));
getch();
closegraph();
exit(0);
return 0;
}
我查了一下资料说是bioskey(0)是返回按键的ASCII值,但是当我按下键盘上的按键时,不能退出循环呢??

------解决方案--------------------
函数名: bioskey   
功 能: 直接使用BIOS服务的键盘接口   
函数原型:int bioskey (int cmd)   
说明:bioskey()的函数原型在bios.h中   
bioskey()完成直接键盘操作,cmd的值决定执行什么操作。   

cmd = 0: 
当cmd是0,bioskey()返回下一个在键盘键入的值(它将等待到按下一个键)。它返回一个16位的二进制数,包括两个不同的值。当按下一个普通键时,它的低8位数存放该字符的ASCII码,高8位存放该键的扫描码;对于特殊键(如方向键、F1~F12等等),低8位为0,高8位字节存放该键的扫描码。

cmd = 1:   
当cmd是1,bioskey()查询是否按下一个键,若按下一个键则返回非零值,否则返回0。   

cmd = 2:   
当cmd是2,bioskey()返回Shift、Ctrl、Alt、ScrollLock、NumLock、CapsLock、Insert键的状态。各键状态存放在返回值的低8位字节中。   
字节位 含义   
0 右边Shift键状态   
1 左边Shift键状态   
2 Ctrl键状态   
3 Alt键状态   
4 ScrollLock键状态   
5 NumLock键状态   
6 CapsLock键状态   
7 Insert键状态   
字节位为1表示该键被按下,为0表示松开。
------解决方案--------------------
按你写的代码,当按下键盘上的按键时,应该继续循环。