四年专业论文网,提供各种免费论文及范文报告下载及代写论文服务,包括硕士论文,毕业论文,职称论文,英语论文

加入收藏 | 网站地图 | 在线留言
华东论文网网站LOGO 代写论文论文定制 发表论文发表论文 合作流程合作流程 付款方式付款方式 信用说明信用说明 刊物介绍刊物介绍
本站公告: 热烈庆祝华东论文网新版上线 [华东论文网 2008年6月16日] 欢迎光临华东论文网-专业的代写论文网 [华东论文网 2007年10月21日] 欢迎广大网友来投稿! [华东论文网 2006年11月10日] 为您提供高质量的代写论文服务 [华东论文网 2007年10月20日] 代写论文 论文定制 发表论文 发表论文 诚邀合作 诚邀合作
您现在的位置: 华东论文网 >> 免费论文 >> 计算机类 >> 程序编程 >> 正文
热门文章
推荐文章
相关文章
  • 多种数制显示的汇编语言…

  • 基于SOAP的Web服务攻击及…

  • 用VC++6.0为对话框添加最…

  • Solaris下PRO*C和OCI程序…

  • 基于JSP网页自动生成工具…

  • ASP技术访问WEB数据库

  • VB编程中网格控件的选用…

  • 网络时代对后结构主义的…

  • ASP.Net中程序构架与程序…

  • 如何提高Visual FoxPro的…

  • 论文网栏目 毕业论文选题指导 [组图]深入CD-ROM编程 论文网栏目

    深入CD-ROM编程

    作者:佚名 文章来源:本站原创 点击数: 更新时间:2005-3-3
       在多媒体系统中,CD-ROM是必不可少的。以DOS为例,CD-ROM应用环境的大致结构是:
     用户
     ↓
     MSCDEX
     ↓
     厂家提供的驱动程序
     ↓
     CD-ROM
     其中,MSCDEX起到了一个转换器的作用,将CD上的文件格式转化为标准的DOS文件格式,使CD-ROM象普通驱动器一样受DOS管理。
     但是,在一般应用中,CD-ROM还能用来播放音乐碟,许多应用软件(如Creative Labs的Quick CD)可以模拟一台CD音响,完成出盒、入盒、播放、快速进退和重复等一系列功能。实际上,MSCDEX并未提供这些功能,必须访问CD-ROM的驱动程序,才能达到上述目的,因为所有CD-ROM的驱动程序与MSCDEX之间的接口都是规范的,这给我们提供了极大的方便。下面将详细阐述如何实现上述功能。
     DOS的设备分为字符设备和块设备两种,CD-ROM的驱动程序属于前者,访问它必须遵循DOS的要求:填写设备驱动程序请求头、访问驱动程序的策略(Strategy)过程、访问驱动程序的中断(Interrupt)过程。
     设备驱动程序请求头的基本格式如下:
     偏移量 类型 含义
     00H 字节 请求头长度
     01H 字节 驱动程序内的子单元
     02H 字节 命令码
     03H 单字 返回码
     …
     以下内容根据命令码进行填写
     下面给出几种CD-ROM常用功能使用的命令码和格式:
     1.IOCTL INPUT:
     偏移量 类型 内容
     00H 字节 1AH
     01H 字节 00H
     02H 字节 03H
     03H 字节 11 DUP(?)
     0EH 双字 缓冲区地址
     12H 单字 缓冲区长度
     14H 字节 6 DUP (?)
     在缓冲区内按一定的格式填入参数,便可得到CD-ROM的各种状态。
     缓冲区的格式:
     作用 长度 格式
     取CD-ROM状态 5 输入:06 xx xx xx xx
     返回:06 SS SS 00 00
     说明:SS SS为状态字,关键的有两位
     位0:1、开门 0、关门
     位B:1、有盘 0、无盘
     取CD总扇区数 5 输入:08 xx xx xx xx
     返回:08 LL LL LL LL
     说明:LL LL LL LL为总扇区数
     取音乐CD信息 7 输入:0A xx xx xx xx xx xx
     返回:0A xx NN TT SS MM xx
     说明: NN为曲目数
     MM为分钟数
     SS为秒数(0~59)
     TT为扇区数(0~74)
     CD的一个扇区大小为2048B
     播放速度为每秒75扇区即150KB/s
     取指定歌曲 7 输入:0B NN xx xx xx xx xx
     的起始时间 返回:0B NN TT SS MM xx xx
     说明: NN为曲目序号
     MM为起始分钟数
     SS为起始秒数(0~59)
     TT为起始扇区数(0~74)
     取播放状态 11 输入:0C xx xx xx xx xx xx xx xx xx xx
     返回:0C xx NN xx MM SS TT xx ZM ZS ZT
     说明: NN为曲目序号(BCD码)
     MM为该曲目分钟数
     SS为该曲目秒数(0~59)
     TT为扇区数(0~74)
     ZM为总分钟数
     ZS为总秒数(0~59)
     ZT为扇区数(0~74)
     2.IOCTL OUTPUT
     偏移量 类型 内容
     00H 字节 1AH
     01H 字节 00H
     02H 字节 0CH
     03H 字节 11 DUP(?)
     0EH 双字 缓冲区地址
     12H 单字 缓冲区长度
     14H 字节 6 DUP(?)
     在缓冲区内按一定的格式填入参数,便可操纵CD-ROM的动作。
     缓冲区的格式:
     作用 长度 格式
     出盒 1 输入:00
     解锁出盒键 2 输入:01 00
     加锁出盒键 2 输入:01 01
     入盒 1 输入:05
     3.PLAY AUDIO
     偏移量 类型 内容
     00H 字节 16H
     01H 字节 00H
     02H 字节 84H
     03H 字节 10 DUP (?)
     0DH 字节 01H
     0EH 字节 起始扇区数(0~74)
     0FH 字节 起始秒数
     10H 字节 起始分钟数
     11H 字节 00H
     12H 双字 播放扇区数(75扇区/s)
     从指定的起始时间开始播放指定的扇区数然后自动停止
     4.STOP AUDIO
     偏移量 类型 内容
     00H 字节 ODH
     01H 字节 00H
     02H 字节 85H
     03H 字节 10 DUP (?)
     停止播放
     以上给出的是CD-ROM常用功能的设备驱动程序请求头格式,但是在应用中怎样实现上述功能呢?有两种方法。
     一是直接访问设备驱动程序,这种方法比较复杂,本文不作介绍。
     二是使用MSCDEX提供的接口。主要功能有以下几种。
     (1) 检测MSCDEX是否安装
     BX=0
     AX=1500H
     INT 2FH
     返回:
     BX=CD-ROM的个数
     CX=起始的CD-ROM盘号(0-A,1-B,等等)
     (2) 发送设备驱动程序请求
     ES:BX=设备驱动程序请求头地址
     CX=CD-ROM盘号(0-A,1-B,等等)
     AX=1510H
     INT 2FH
     用户填写请求头,通过INT 2FH完成所需要的功能。
     下面给出一段例程,播放CD中第二支曲目30秒钟。
     限于篇幅,本程序未作错误处理,假设执行正确。
     CODE SEGMENT
     ASSUME CS: CODE, DS:CODE
     BUF DB OBH, 2, 5 DUP(?)
     REQ DB 1AH,0,3,11 DUP(?)
     DD BUF
     DW 7
     DB 6 DUP (?)
     PLAY DB 16 H,0,84H,10 DUP (?),1
     DB 3 DUP(?),0
     DD 75*30
     START:
     MOV AX,CODE
     MOV DS,AX
     XOR BX,BX
     MOV AX,1500H
     INT 2FH
     OR BX,BX
     JZ NO-CD
     MOV AX,SEG REQ
     MOV ES,AX
     MOV BX,OFFSET REQ
     MOV AX,1510H
     INT 2FH
     MOV AX, [BUF+2]
     MOV [PLAY+0EH],AX
     MOV AL, [BUF+4]
     MOV [PLAY+10H],AL
     MOV AX, SEG
     PLAY
     MOV ES,AX
     MOV BX,OFFSET PLAY
     MOV AX,1510H
     INT 2FH
     NO-CD:
     MOV AH,4CH
     INT 21H
     CODE ENDS
     END START
     还有一些功能,因为不是应用必需的,这里就不再赘述。
    论文录入:华东论文网    责任编辑:华东论文网 
  • 上一篇论文: 基于WWW的协同式CAI软件的Java实现

  • 下一篇论文: 用VB制作网址链接器
  • 【字体: 】【发表评论】【告诉好友】【打印此文】【关闭窗口
    联系我们 | 版权申明 | 友情链接 | 关于论文网 | 网站地图 | 银行汇款说明 | 加盟笔杆子说明

    客服电话:13886096221(全天) QQ在线客服:论文代写在线QQ50403530 联系邮箱:hdlww@hdlww.com
    CopyRight (C)2004-2008 Www.hdlww.Com All Rights Reserved.. 浙ICP备05017412号
    所有论文资料均源于网上的共享资源及期刊共享,请特别注意勿做其他非法用途
    如有侵犯您的版权或其他有损您利益的行为,请联系指出,华东论文网会立即进行改正或删除有关内容
    本站关键词:

    论文网 硕士论文 毕业论文 职称论文 英语论文 代写论文