首 页       用户登录  |  用户注册
设为首页
加入收藏
联系我们
按字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
按声母检索 A B C D E F G H J K L M N O P Q R S T W X Y Z 数字 符号
您的位置: 5VAR论文频道论文中心计算机论文计算机理论

Tags:


   ○深入CD-ROM编程      ★★★ 【字体: 】  
○深入CD-ROM编程
收集整理:佚名    来源:本站整理  时间:2009-01-10 12:04:58   点击数:[]    

[本篇论文由上帝论文网为您收集整理,上帝论文网http://paper.5var.com将为您整理更多优秀的免费论文,谢谢您的支持]
在多媒体系统中,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

还有一些功能,因为不是应用必需的,这里就不再赘述。



作者:余珏 陈志慧
   
     
     


转自: 仅仅学术交流与学习之用,非商业之目的.

文章转载请注明来源于:5VAR论文频道 http://paper.5var.com。本站内容整理自互联网,如有问题或合作请Email至:support@5var.com
或联系QQ37750965
提供人:佚名
  • 上一篇文章:○Windows NT中的登记项及其完整性

  • 下一篇文章:○可移植的256色图形用户界面的设计
  • 返回上一页】【打 印】【关闭窗口
    中查找“○深入CD-ROM编程”更多相关内容 5VAR论文频道
    中查找“○深入CD-ROM编程”更多相关内容 5VAR论文频道
    最新热点 最新推荐 相关新闻
  • ››中小企业办公自动化系统的设计与实...
  • ››未雨绸缪:关于我国电子商务税收对...
  • ››网上书店为钱做秀 行业走势两极分...
  • ››Win2000索引服务的WEB应用
  • ››宽带化――电信发展的必由之路务
  • ››电子商务中x种错误思路和做法
  • ››网络营销与传统营销相比有何优势
  • ››Internet的下一个热点 从内容走向服...
  • ››基于CNAPS的流水号管理方法
  • ››网络时代的财务与会计:管理集成与...
  • ››深入CD-ROM编程
  •   文章-网友评论:(评论内容只代表网友观点,与本站立场无关!)
    关于本站 - 网站帮助 - 广告合作 - 下载声明 - 网站地图
    Copyright © 2006-2033 5Var.Com. All Rights Reserved .