摘要: 制作前的准备:先将本硬盘备份到软盘中,这里是保存在软盘0磁头0柱面2扇区中,以便万一做不成功时,进行恢复。C:\DOS>DEBUG -a 100 mov ax,201 mov bx,200 mov cx,1 mov dx,80 int 13 ;读硬盘0磁头0柱面1扇区的内容到ES:200处 mov ax,301 mov bx,200 mov cx,2 mov dx, 0 int 13 ... 阅读全文
posted @ 2006-06-01 10:55 ahuo 阅读(1399) 评论(1) 推荐(0) 编辑
摘要: 函数名: biosdisk 功 能: 软硬盘I/O 用 法: int biosdisk(int cmd, int drive, int head, int track, int sector int nsects, void *buffer); 本函数用来对驱动器作一定的操作,cmd为功能号, drive为驱动器号(0=A,1=B,0x80=C,0x81=D... 阅读全文
posted @ 2006-06-01 10:20 ahuo 阅读(565) 评论(0) 推荐(0) 编辑
摘要: 我们在应用程序中常见到用软件控制 CD-ROM 的出、入盒,本文就是实现这种功能的一个例子。主要用到 INT 2FH 的 1510H(Send device driver request) 功能。具体参数详见程序注释。 要用到的几个中断说明如下:1. IOCTL input 的格式: 偏移量 类型 ... 阅读全文
posted @ 2006-06-01 10:10 ahuo 阅读(520) 评论(0) 推荐(0) 编辑
摘要: 概述: 我们知道,DOS 的中断例程的入口地址存在 0000:0000 开始的中断向量表中,当程序要要建立一个中断例程时,需要修改中断向量表把入口地址指向自己的程序,为了使原来的中断例程能正常使用,在出口的时候还要用远跳转指令回到原中断的入口地址,如 DOS 中断 INT 21H,在 DOS 启动后,后面要挂上很多的新的例程,如 SMARTDRV 等等,磁盘中断 INT 13H 也是如此。 ... 阅读全文
posted @ 2006-06-01 10:09 ahuo 阅读(1147) 评论(0) 推荐(0) 编辑
摘要: 不知你编过全盘搜索程序没有,本程序用在消毒程序以及其他需要主动搜索磁盘上所有文件的地方,由于以前我自己的注释都是英文的,所以这次简单加上了一些中文。 本程序要用到的 DOS 中断很少,仅为 4EH 和 4FH,功能是查找第一个匹配文件名和继续查找,编程难点是要用到类似于堆栈的数据结构,把找到的子目录名暂时存起来,等当前目录找完后在取出来,然后继续查找下一个目录,我用的方法是开一个缓冲区,定义一... 阅读全文
posted @ 2006-06-01 10:08 ahuo 阅读(731) 评论(0) 推荐(0) 编辑
摘要: 第一部分 简 介1,1一. 硬盘结构简介 1. 硬盘参数释疑 到目前为止, 人们常说的硬盘参数还是古老的 CHS (Cylinder/Head/Sector)参数. 那么为什么要使用这些参数, 它们的意义是什么?它们的取值范围是什么? 很久以前, 硬盘的容量还非常小的时候, 人们采用与软盘类似的结构生产硬盘. 也就是硬盘盘片的每一条磁道都具有相同的扇区数. 由此产生了所谓的3D参... 阅读全文
posted @ 2006-06-01 10:07 ahuo 阅读(1124) 评论(0) 推荐(0) 编辑
摘要: 由于Windows 操作系统在很大程度上采取了访问安全保护机制(例如,在Windows操作系统下不能直接访问物理内存、不能使用各种DOS、BIOS中断等等),使得广大程序设计人员在长时间的开发过程中不知不觉地逐渐养成了这样的潜意识——在Windows操作系统下直接操纵硬件设备是极端困难和非常烦琐的,并将其看作Windows编程的一个禁区。尽管在大多数场合下这样的论断还算是贴切,但也并非对所有的硬件... 阅读全文
posted @ 2006-06-01 09:51 ahuo 阅读(844) 评论(0) 推荐(0) 编辑