⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 021.htm

📁 一个好的讲DSP中C语言编程的电子书
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<BR>&nbsp;
<BR>&nbsp;
<BR>&nbsp;
<BR>
<P>函数名: biosequip
<BR>功&nbsp; 能: 检查设备
<BR>用&nbsp; 法: int biosequip(void);
<BR>程序例:
<BR>
<P>#include &lt;bios.h>
<BR>#include &lt;stdio.h>
<BR>
<P>int main(void)
<BR>{
<BR>&nbsp;&nbsp; int result;
<BR>&nbsp;&nbsp; char buffer[512];
<BR>
<P>&nbsp;&nbsp; printf("Testing to see if drive a: is ready\n");
<BR>&nbsp;&nbsp; result = biosdisk(4,0,0,0,0,1,buffer);
<BR>&nbsp;&nbsp; result &amp;= 0x02;
<BR>&nbsp;&nbsp; (result) ? (printf("Drive A: Ready\n")) :
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (printf("Drive A: Not Ready\n"));
<BR>
<P>&nbsp;&nbsp; return 0;
<BR>}
<BR>&nbsp;
<BR>&nbsp;
<BR>&nbsp;
<BR>
<P>函数名: bioskey
<BR>功&nbsp; 能: 直接使用BIOS服务的键盘接口
<BR>用&nbsp; 法: int bioskey(int cmd);
<BR>程序例:
<BR>
<P>#include &lt;stdio.h>
<BR>#include &lt;bios.h>
<BR>#include &lt;ctype.h>
<BR>
<P>#define RIGHT&nbsp; 0x01
<BR>#define LEFT&nbsp;&nbsp; 0x02
<BR>#define CTRL&nbsp;&nbsp; 0x04
<BR>#define ALT&nbsp;&nbsp;&nbsp; 0x08
<BR>
<P>int main(void)
<BR>{
<BR>&nbsp;&nbsp; int key, modifiers;
<BR>
<P>&nbsp;&nbsp; /* function 1 returns 0 until a key is pressed */
<BR>&nbsp;&nbsp; while (bioskey(1) == 0);
<BR>
<P>&nbsp;&nbsp; /* function 0 returns the key that is waiting */
<BR>&nbsp;&nbsp; key = bioskey(0);
<BR>
<P>&nbsp;&nbsp; /* use function 2 to determine if shift keys were used
*/
<BR>&nbsp;&nbsp; modifiers = bioskey(2);
<BR>&nbsp;&nbsp; if (modifiers)
<BR>&nbsp;&nbsp; {
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("[");
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (modifiers &amp; RIGHT) printf("RIGHT");
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (modifiers &amp; LEFT)&nbsp; printf("LEFT");
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (modifiers &amp; CTRL)&nbsp; printf("CTRL");
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (modifiers &amp; ALT)&nbsp;&nbsp;
printf("ALT");
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("]");
<BR>&nbsp;&nbsp; }
<BR>&nbsp;&nbsp; /* print out the character read */
<BR>&nbsp;&nbsp; if (isalnum(key &amp; 0xFF))
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("'%c'\n", key);
<BR>&nbsp;&nbsp; else
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("%#02x\n", key);
<BR>&nbsp;&nbsp; return 0;
<BR>}
<BR>&nbsp;
<BR>&nbsp;
<BR>
<P>函数名: biosmemory
<BR>功&nbsp; 能: 返回存储块大小
<BR>用&nbsp; 法:int biosmemory(void);
<BR>程序例:
<BR>
<P>#include &lt;stdio.h>
<BR>#include &lt;bios.h>
<BR>
<P>int main(void)
<BR>{
<BR>&nbsp;&nbsp; int memory_size;
<BR>
<P>&nbsp;&nbsp; memory_size = biosmemory();&nbsp; /* returns value up to
640K */
<BR>&nbsp;&nbsp; printf("RAM size = %dK\n",memory_size);
<BR>&nbsp;&nbsp; return 0;
<BR>}
<BR>&nbsp;
<BR>&nbsp;
<BR>&nbsp;
<BR>
<P>函数名: biosprint
<BR>功&nbsp; 能: 直接使用BIOS服务的打印机I/O
<BR>用&nbsp; 法: int biosprint(int cmd, int byte, int port);
<BR>程序例:
<BR>
<P>#include &lt;stdio.h>
<BR>#include &lt;conio.h>
<BR>#include &lt;bios.h>
<BR>
<P>int main(void)
<BR>{
<BR>&nbsp;&nbsp; #define STATUS&nbsp; 2&nbsp;&nbsp;&nbsp; /* printer status
command */
<BR>&nbsp;&nbsp; #define PORTNUM 0&nbsp;&nbsp;&nbsp; /* port number for
LPT1 */
<BR>
<P>&nbsp;&nbsp; int status, abyte=0;
<BR>
<P>&nbsp;&nbsp; printf("Please turn off your printer.&nbsp; Press any key
to continue\n");
<BR>&nbsp;&nbsp; getch();
<BR>&nbsp;&nbsp; status = biosprint(STATUS, abyte, PORTNUM);
<BR>&nbsp;&nbsp; if (status &amp; 0x01)
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Device time out.\n");
<BR>&nbsp;&nbsp; if (status &amp; 0x08)
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("I/O error.\n");
<BR>
<P>&nbsp;&nbsp; if (status &amp; 0x10)
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Selected.\n");
<BR>&nbsp;&nbsp; if (status &amp; 0x20)
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Out of paper.\n");
<BR>
<P>&nbsp;&nbsp; if (status &amp; 0x40)
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Acknowledge.\n");
<BR>&nbsp;&nbsp; if (status &amp; 0x80)
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Not busy.\n");
<BR>
<P>&nbsp;&nbsp; return 0;
<BR>}
<BR>&nbsp;
<BR>&nbsp;
<BR>&nbsp;
<BR>
<P>函数名: biostime
<BR>功&nbsp; 能: 读取或设置BIOS时间
<BR>用&nbsp; 法: long biostime(int cmd, long newtime);
<BR>程序例:
<BR>
<P>#include &lt;stdio.h>
<BR>#include &lt;bios.h>
<BR>#include &lt;time.h>
<BR>#include &lt;conio.h>
<BR>
<P>int main(void)
<BR>{
<BR>&nbsp;&nbsp; long bios_time;
<BR>
<P>&nbsp;&nbsp; clrscr();
<BR>&nbsp;&nbsp; cprintf("The number of clock ticks since midnight is:\r\n");
<BR>&nbsp;&nbsp; cprintf("The number of seconds since midnight is:\r\n");
<BR>&nbsp;&nbsp; cprintf("The number of minutes since midnight is:\r\n");
<BR>&nbsp;&nbsp; cprintf("The number of hours since midnight is:\r\n");
<BR>&nbsp;&nbsp; cprintf("\r\nPress any key to quit:");
<BR>&nbsp;&nbsp; while(!kbhit())
<BR>&nbsp;&nbsp; {
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bios_time = biostime(0, 0L);
<BR>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gotoxy(50, 1);
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cprintf("%lu", bios_time);
<BR>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gotoxy(50, 2);
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cprintf("%.4f", bios_time / CLK_TCK);
<BR>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gotoxy(50, 3);
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cprintf("%.4f", bios_time / CLK_TCK
/ 60);
<BR>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gotoxy(50, 4);
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cprintf("%.4f", bios_time / CLK_TCK
/ 3600);
<BR>&nbsp;&nbsp; }
<BR>&nbsp;&nbsp; return 0;
<BR>}
<BR>&nbsp;
<BR>&nbsp;
<BR>&nbsp;
<BR>
<P>函数名: brk
<BR>功&nbsp; 能: 改变数据段空间分配
<BR>用&nbsp; 法: int brk(void *endds);
<BR>程序例:
<BR>
<P>#include &lt;stdio.h>
<BR>#include &lt;alloc.h>
<BR>
<P>int main(void)
<BR>{
<BR>&nbsp;&nbsp; char *ptr;
<BR>
<P>&nbsp;&nbsp; printf("Changing allocation with brk()\n");
<BR>&nbsp;&nbsp; ptr = malloc(1);
<BR>&nbsp;&nbsp; printf("Before brk() call: %lu bytes free\n", coreleft());
<BR>&nbsp;&nbsp; brk(ptr+1000);
<BR>&nbsp;&nbsp; printf(" After brk() call: %lu bytes free\n", coreleft());
<BR>&nbsp;&nbsp; return 0;
<BR>}
<BR>&nbsp;
<BR>&nbsp;
<BR>&nbsp;
<BR>
<P>函数名: bsearch
<BR>功&nbsp; 能: 二分法搜索
<BR>用&nbsp; 法: void *bsearch(const void *key, const void *base, size_t
*nelem,
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; size_t width, int(*fcmp)(const
void *, const *));
<BR>程序例:
<BR>
<P>#include &lt;stdlib.h>
<BR>#include &lt;stdio.h>
<BR>
<P>#define NELEMS(arr) (sizeof(arr) / sizeof(arr[0]))
<BR>
<P>int numarray[] = {123, 145, 512, 627, 800, 933};
<BR>
<P>int numeric (const int *p1, const int *p2)
<BR>{
<BR>&nbsp;&nbsp; return(*p1 - *p2);
<BR>}
<BR>
<P>int lookup(int key)
<BR>{
<BR>&nbsp;&nbsp; int *itemptr;
<BR>
<P>&nbsp;&nbsp; /* The cast of (int(*)(const void *,const void*))
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; is needed to avoid a type mismatch error
at
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; compile time */
<BR>&nbsp;&nbsp; itemptr = bsearch (&amp;key, numarray, NELEMS(numarray),
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof(int), (int(*)(const void *,const
void *))numeric);
<BR>&nbsp;&nbsp; return (itemptr != NULL);
<BR>}
<BR>
<P>int main(void)
<BR>{
<BR>&nbsp;&nbsp; if (lookup(512))
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("512 is in the table.\n");
<BR>&nbsp;&nbsp; else
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("512 isn't in the table.\n");
<BR>
<P>&nbsp;&nbsp; return 0;
<BR>}
<BR>&nbsp;
<BR>
<hr color="#EE9B73" size="1" width="94%">

</TD>
<TD CLASS="tt3" VALIGN="bottom" width="8%"  bgcolor="#e0e0e0"><strong><A HREF="022.htm">后一页</A><BR>
<A HREF="020.htm">前一页</A><BR>

<A HREF="index.html">回目录</A><BR>
<A HREF="../../../../index.htm">回首页</A><BR>
</strong>
</TD>
</TR>
</table>
</BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -