cd-rom编程研究论文-_第1页
cd-rom编程研究论文-_第2页
cd-rom编程研究论文-_第3页
cd-rom编程研究论文-_第4页
cd-rom编程研究论文-_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

CD-ROM 编程研究论文在多媒体系统中,cD-Rom 是必不可少的。以DoS 为例,cD-Rom 应用环境的大致结构是:用户mScDEX厂家提供的驱动程序cD-Rom其中,mScDEX 起到了一个转换器的作用,将cD 上的文件格式转化为标准的 DoS 文件格式,使cD-Rom 象普通驱动器一样受 DoS 管理。但是,在一般应用中,cD-Rom 还能用来播放音乐碟,许多应用软件可以模拟一台 cD 音响,完成出盒、入盒、播放、快速进退和重复等一系列功能。实际上,mScDEX 并未提供这些功能,必须访问 cD-Rom 的驱动程序,才能达到上述目的,因为所有 cD-Rom 的驱动程序与 mScDEX 之间的接口都是规范的,这给我们提供了极大的方便。下面将详细阐述如何实现上述功能。DoS 的设备分为字符设备和块设备两种,cD-Rom 的驱动程序属于前者,访问它必须遵循 DoS 的要求:填写设备驱动程序请求头、访问驱动程序的策略过程、访问驱动程序的中断过程。设备驱动程序请求头的基本格式如下:偏移量类型含义00H 字节请求头长度01H 字节驱动程序内的子单元02H 字节命令码03H 单字返回码以下内容根据命令码进行填写下面给出几种 cD-Rom 常用功能使用的命令码和格式:.IocTLINPUT:偏移量类型内容00H 字节 1AH01H 字节 00H02H 字节 03H03H 字节 11DUP0EH 双字缓冲区地址2H 单字缓冲区长度4H 字节 6DUP在缓冲区内按一定的格式填入参数,便可得到cD-Rom 的各种状态。缓冲区的格式:作用长度格式取 cD-Rom 状态 5 输入:06xxxxxxxx返回:06SSSS0000说明:SSSS 为状态字,关键的有两位位 0:1、开门 0、关门位 B:1、有盘 0、无盘取 cD 总扇区数 5 输入:08xxxxxxxx返回:08LLLLLLLL说明:LLLLLLLL 为总扇区数取音乐 cD 信息 7 输入:0Axxxxxxxxxxxx返回:0AxxNNTTSSmmxx说明:NN 为曲目数mm 为分钟数SS 为秒数TT 为扇区数cD 的一个扇区大小为 2048B播放速度为每秒 75 扇区即 150kB/s取指定歌曲 7 输入:0BNNxxxxxxxxxx的起始时间返回:0BNNTTSSmmxxxx说明:NN 为曲目序号mm 为起始分钟数SS 为起始秒数TT 为起始扇区数取播放状态 11 输入:0cxxxxxxxxxxxxxxxxxxxx返回:0cxxNNxxmmSSTTxxZmZSZT说明:NN 为曲目序号mm 为该曲目分钟数SS 为该曲目秒数TT 为扇区数Zm 为总分钟数ZS 为总秒数ZT 为扇区数2.IocTLoUTPUT偏移量类型内容00H 字节 1AH01H 字节 00H02H 字节 0cH03H 字节 11DUP0EH 双字缓冲区地址2H 单字缓冲区长度4H 字节 6DUP在缓冲区内按一定的格式填入参数,便可操纵cD-Rom 的动作。缓冲区的格式:作用长度格式出盒 1 输入:00解锁出盒键 2 输入:0100加锁出盒键 2 输入:0101入盒 1 输入:053.PLAyAUDIo偏移量类型内容00H 字节 16H01H 字节 00H02H 字节 84H03H 字节 10DUP0DH 字节 01H0EH 字节起始扇区数0FH 字节起始秒数0H 字节起始分钟数1H 字节 00H2H 双字播放扇区数从指定的起始时间开始播放指定的扇区数然后自动停止4.SToPAUDIo偏移量类型内容00H 字节 oDH01H 字节 00H02H 字节 85H03H 字节 10DUP停止播放以上给出的是 cD-Rom 常用功能的设备驱动程序请求头格式,但是在应用中怎样实现上述功能呢?有两种方法。一是直接访问设备驱动程序,这种方法比较复杂,本文不作介绍。二是使用 mScDEX 提供的接口。主要功能有以下几种。检测 mScDEX 是否安装BX=0AX=1500HINT2FH返回:BX=cD-Rom 的个数cX=起始的 cD-Rom 盘号发送设备驱动程序请求ES:BX=设备驱动程序请求头地址cX=cD-Rom 盘号AX=1510HINT2FH用户填写请求头,通过 INT2FH 完成所需要的功能。下面给出一段例程,播放 cD 中第二支曲目 30秒钟。限于篇幅,本程序未作错误处理,假设执行正确。coDESEGmENTASSUmEcS:coDE,DS:coDEBUFDBoBH,2,5DUPREQDB1AH,0,3,11DUPDDBUFDw7DB6DUPPLAyDB16H,0,84H,10DUP,1DB3DUP,0DD75*30START:moVAX,coDEmoVDS,AXXoRBX,BXmoVAX,1500HINT2FHoRBX,BXjZNo-cDmoVAX,SEGREQmoVES,AXmoVBX,oFFSETREQmoVAX,1510HINT2FHmoVAX,BUF2moVPLAy0EH,AXmoVAL,BUF4moVPLAy10H,ALmoVAX,SEGPLAymoVES,AXmoVBX,oFFSETPLAymoVAX,1510HINT2FHNo-cD:moVAH,4cHINT21HcoDEENDSENDSTART在多媒体系统中,cD-Rom 是必不可少的。以DoS 为例,cD-Rom 应用环境的大致结构是:用户mScDEX厂家提供的驱动程序cD-Rom其中,mScDEX 起到了一个转换器的作用,将cD 上的文件格式转化为标准的 DoS 文件格式,使cD-Rom 象普通驱动器一样受 DoS 管理。但是,在一般应用中,cD-Rom 还能用来播放音乐碟,许多应用软件可以模拟一台 cD 音响,完成出盒、入盒、播放、快速进退和重复等一系列功能。实际上,mScDEX 并未提供这些功能,必须访问 cD-Rom 的驱动程序,才能达到上述目的,因为所有 cD-Rom 的驱动程序与 mScDEX 之间的接口都是规范的,这给我们提供了极大的方便。下面将详细阐述如何实现上述功能。DoS 的设备分为字符设备和块设备两种,cD-Rom 的驱动程序属于前者,访问它必须遵循 DoS 的要求:填写设备驱动程序请求头、访问驱动程序的策略过程、访问驱动程序的中断过程。设备驱动程序请求头的基本格式如下:偏移量类型含义00H 字节请求头长度01H 字节驱动程序内的子单元02H 字节命令码03H 单字返回码以下内容根据命令码进行填写下面给出几种 cD-Rom 常用功能使用的命令码和格式:.IocTLINPUT:偏移量类型内容00H 字节 1AH01H 字节 00H02H 字节 03H03H 字节 11DUP0EH 双字缓冲区地址2H 单字缓冲区长度4H 字节 6DUP在缓冲区内按一定的格式填入参数,便可得到cD-Rom 的各种状态。缓冲区的格式:作用长度格式取 cD-Rom 状态 5 输入:06xxxxxxxx返回:06SSSS0000说明:SSSS 为状态字,关键的有两位位 0:1、开门 0、关门位 B:1、有盘 0、无盘取 cD 总扇区数 5 输入:08xxxxxxxx返回:08LLLLLLLL说明:LLLLLLLL 为总扇区数取音乐 cD 信息 7 输入:0Axxxxxxxxxxxx返回:0AxxNNTTSSmmxx说明:NN 为曲目数mm 为分钟数SS 为秒数TT 为扇区数cD 的一个扇区大小为 2048B播放速度为每秒 75 扇区即 150kB/s取指定歌曲 7 输入:0BNNxxxxxxxxxx的起始时间返回:0BNNTTSSmmxxxx说明:NN 为曲目序号mm 为起始分钟数SS 为起始秒数TT 为起始扇区数取播放状态 11 输入:0cxxxxxxxxxxxxxxxxxxxx返回:0cxxNNxxmmSSTTxxZmZSZT说明:NN 为曲目序号mm 为该曲目分钟数SS 为该曲目秒数TT 为扇区数Zm 为总分钟数ZS 为总秒数ZT 为扇区数2.IocTLoUTPUT偏移量类型内容00H 字节 1AH01H 字节 00H02H 字节 0cH03H 字节 11DUP0EH 双字缓冲区地址2H 单字缓冲区长度4H 字节 6DUP在缓冲区内按一定的格式填入参数,便可操纵cD-Rom 的动作。缓冲区的格式:作用长度格式出盒 1 输入:00解锁出盒键 2 输入:0100加锁出盒键 2 输入:0101入盒 1 输入:053.PLAyAUDIo偏移量类型内容00H 字节 16H01H 字节 00H02H 字节 84H03H 字节 10DUP0DH 字节 01H0EH 字节起始扇区数0FH 字节起始秒数0H 字节起始分钟数1H 字节 00H2H 双字播放扇区数从指定的起始时间开始播放指定的扇区数然后自动停止4.SToPAUDIo偏移量类型内容00H 字节 oDH01H 字节 00H02H 字节 85H03H 字节 10DUP停止播放以上给出的是 cD-Rom 常用功能的设备驱动程序请求头格式,但是在应用中怎样实现上述功能呢?有两种方法。一是直接访问设备驱动程序,这种方法比较复杂,本文不作介绍。二是使用 mScDEX 提供的接口。主要功能有以下几种。检测 mScDEX 是否安装BX=0AX=1500HINT2FH返回:BX=cD-Rom 的个数cX=起始的 cD-Rom 盘号发送设备驱动程序请求ES:BX=设备驱动程序请求头地址cX=cD-Rom 盘号AX=1510HINT2FH用户填写请求头,通过 INT2FH 完成所需要的功能。下面给出一段例程,播放 cD 中第二支曲目 30秒钟。限于篇幅,本程序未作错误处理,假设执行正确。coDESEGmENTASSUmEcS:coDE,DS:coDEBUFDBoBH,2,5DUPREQDB1AH,0,3,11DUPDDBUFDw7DB6DUPPLAyDB16H,0,84H,10DUP,1DB3DUP,0DD75*30START:moVAX,coDEmoVDS,AXXoRBX,BXmoVAX,1500HINT2FHoRBX,BXjZNo-cDmoVAX,SEGREQmoVES,AXmoVBX,oFFSETREQmoVAX,1510HINT2FHmoVAX,BUF2moVPLAy0EH,AXmoVAL,BUF4moVPLAy10H,ALmoVAX,SEGPLAymoVES,AXmoVBX,oFFSETPLAymoVAX,1510HINT2FHNo-cD:moVAH,4cHINT21HcoDEENDSENDSTART在多媒体系统中,cD-Rom 是必不可少的。以DoS 为例,cD-Rom 应用环境的大致结构是:用户mScDEX厂家提供的驱动程序cD-Rom其中,mScDEX 起到了一个转换器的作用,将cD 上的文件格式转化为标准的 DoS 文件格式,使cD-Rom 象普通驱动器一样受 DoS 管理。但是,在一般应用中,cD-Rom 还能用来播放音乐碟,许多应用软件可以模拟一台 cD 音响,完成出盒、入盒、播放、快速进退和重复等一系列功能。实际上,mScDEX 并未提供这些功能,必须访问 cD-Rom 的驱动程序,才能达到上述目的,因为所有 cD-Rom 的驱动程序与 mScDEX 之间的接口都是规范的,这给我们提供了极大的方便。下面将详细阐述如何实现上述功能。DoS 的设备分为字符设备和块设备两种,cD-Rom 的驱动程序属于前者,访问它必须遵循 DoS 的要求:填写设备驱动程序请求头、访问驱动程序的策略过程、访问驱动程序的中断过程。设备驱动程序请求头的基本格式如下:偏移量类型含义00H 字节请求头长度01H 字节驱动程序内的子单元02H 字节命令码03H 单字返回码以下内容根据命令码进行填写下面给出几种 cD-Rom 常用功能使用的命令码和格式:.IocTLINPUT:偏移量类型内容00H 字节 1AH01H 字节 00H02H 字节 03H03H 字节 11DUP0EH 双字缓冲区地址2H 单字缓冲区长度4H 字节 6DUP在缓冲区内按一定的格式填入参数,便可得到cD-Rom 的各种状态。缓冲区的格式:作用长度格式取 cD-Rom 状态 5 输入:06xxxxxxxx返回:06SSSS0000说明:SSSS 为状态字,关键的有两位位 0:1、开门 0、关门位 B:1、有盘 0、无盘取 cD 总扇区数 5 输入:08xxxxxxxx返回:08LLLLLLLL说明:LLLLLLLL 为总扇区数取音乐 cD 信息 7 输入:0Axxxxxxxxxxxx返回:0AxxNNTTSSmmxx说明:NN 为曲目数mm 为分钟数SS 为秒数TT 为扇区数cD 的一个扇区大小为 2048B播放速度为每秒 75 扇区即 150kB/s取指定歌曲 7 输入:0BNNxxxxxxxxxx的起始时间返回:0BNNTTSSmmxxxx说明:NN 为曲目序号mm 为起始分钟数SS 为起始秒数TT 为起始扇区数取播放状态 11 输入:0cxxxxxxxxxxxxxxxxxxxx返回:0cxxNNxxmmSSTTxxZmZSZT说明:NN 为曲目序号mm 为该曲目分钟数SS 为该曲目秒数TT 为扇区数Zm 为总分钟数ZS 为总秒数ZT 为扇区数2.IocTLoUTPUT偏移量类型内容00H 字节 1AH01H 字节 00H02H 字节 0cH03H 字节 11DUP0EH 双字缓冲区地址2H 单字缓冲区长度4H 字节 6DUP在缓冲区内按一定的格式填入参数,便可操纵cD-Rom 的动作。缓冲区的格式:作用长度格式出盒 1 输入:00解锁出盒键 2 输入:0100加锁出盒键 2 输入:0101入盒 1 输入:053.PLAyAUDIo偏移量类型内容00H 字节 16H01H 字节 00H02H 字节 84H03H 字节 10DUP0DH 字节 01H0EH 字节起始扇区数0FH 字节起始秒数0H 字节起始分钟数1H 字节 00H2H 双字播放扇区数从指定的起始时间开始播放指定的扇区数然后自动停止4.SToPAUDIo偏移量类型内容00H 字节 oDH01H 字节 00H02H 字节 85H03H 字节 10DUP停止播放以上给出的是 cD-Rom 常

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论