请详细解释一下TC中 biosdisk()函数的作用和参数。

nofeal 2001-08-31 01:30:22
3X
...全文
192 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
书生 2001-08-31
  • 打赏
  • 举报
回复
他是一个磁盘操作函数Char biosdisk();

char biosdisk(int cmd,int drive,int head,int track,int sector,int nsects,void*buffer);

该函数执行时,将调用中断0x13,对磁盘的各种操作将直接由BIOS来完成。
该函数中的参数cmd表示要对磁盘执行的操作,具体内容如下表。
cmd 含义
0 复位磁盘系统,即强制硬复位。(此时其他参数无效)
1 返回最后一次磁盘操作状态。(此时其他参数无效)
2 读一个或者多个扇区的内容到缓冲区buffer中。
3 将缓冲区buffer中的内容写入磁盘的一个或多个扇区中去。
4 验证一个或多个扇区。
5 格式化一个磁道。


第二个参数drive表示磁盘驱动器号:0表示第一软驱,1表示第二个软驱,2表示第三个软驱等。当
drive的值等于0x80时,表示一个硬驱,0x81为第二个硬驱.head表示磁头号,
track表示磁道号,sector表示扇区号,nsects表示扇区数,buffer表示缓冲区指针。

该函数操作成功后返回一个数,0成功;其他数字表示失败。

例子上面有,就说这么多了。

@_@
MountLion 2001-08-31
  • 打赏
  • 举报
回复
唉!太复杂了,帮你up一下
gffly 2001-08-31
  • 打赏
  • 举报
回复
程序例:

#include <bios.h>
#include <stdio.h>

int main(void)
{
int result;
char buffer[512];

printf("Testing to see if drive a: is ready\n");
result = biosdisk(4,0,0,0,0,1,buffer);
result &= 0x02;
(result) ? (printf("Drive A: Ready\n")) :
(printf("Drive A: Not Ready\n"));

return 0;
}

gffly 2001-08-31
  • 打赏
  • 举报
回复
程序例:

#include <string.h>
#include <stdio.h>
#include <dir.h>
#include <dos.h>
#include <errno.h>
#include <stdlib.h>

#define BUFLEN 80

int main(void)
{
char buffer[BUFLEN];
int test;

printf("Enter full pathname of a directory\n");
gets(buffer);

test = bdosptr(0x3B,buffer,0);
if(test)
{
printf("DOS error message: %d\n", errno);
/* See errno.h for error listings */
exit (1);
}

getcwd(buffer, BUFLEN);
printf("The current directory is: %s\n", buffer);

return 0;
}

supersilver 2001-08-31
  • 打赏
  • 举报
回复
biosdisk函数主要是进行低级的磁盘操作,比如检查磁盘当前状态,可以直接进行写扇区,进行CRC校验,一般不要用,可能会损坏磁盘(应该没事)。
gffly 2001-08-31
  • 打赏
  • 举报
回复
函数名: biosdisk
功 能: 软硬盘I/O
用 法: int biosdisk(int cmd, int drive, int head, int track, int sector
int nsects, void *buffer);

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧