亚洲一区亚洲二区亚洲三区,国产成人高清在线,久久久精品成人免费看,999久久久免费精品国产牛牛,青草视频在线观看完整版,狠狠夜色午夜久久综合热91,日韩精品视频在线免费观看

推薦文檔列表

深入CD-ROM編程

時間:2021-10-01 10:10:07 計算機論文 我要投稿

深入CD-ROM編程

在多媒體系統中,CD-ROM是必不可少的。以DOS為例,CD-ROM應用環(huán)境的大致結構是:

用戶

MSCDEX

廠家提供的驅動程序

CD-ROM

其中,MSCDEX起到了一個轉換器的作用,將CD上的文件格式轉化為標準的DOS文件格式,使CD-ROM象普通驅動器一樣受DOS管理。

但是,在一般應用中,CD-ROM還能用來播放音樂碟,許多應用軟件(如Creative Labs的Quick CD)可以模擬一臺CD音響,完成出盒、入盒、播放、快速進退和重復等一系列功能。實際上,MSCDEX并未提供這些功能,必須訪問CD-ROM的驅動程序,才能達到上述目的,因為所有CD-ROM的驅動程序與MSCDEX之間的接口都是規(guī)范的,這給我們提供了極大的方便。下面將詳細闡述如何實現上述功能。

DOS的設備分為字符設備和塊設備兩種,CD-ROM的驅動程序屬于前者,訪問它必須遵循DOS的要求:填寫設備驅動程序請求頭、訪問驅動程序的策略(Strategy)過程、訪問驅動程序的中斷(Interrupt)過程。

設備驅動程序請求頭的基本格式如下:

偏移量 類型 含義

00H 字節(jié) 請求頭長度

01H 字節(jié) 驅動程序內的子單元

02H 字節(jié) 命令碼

03H 單字 返回碼

以下內容根據命令碼進行填寫

下面給出幾種CD-ROM常用功能使用的命令碼和格式:

1.IOCTL INPUT:

偏移量 類型 內容

00H 字節(jié) 1AH

01H 字節(jié) 00H

02H 字節(jié) 03H

03H 字節(jié) 11 DUP(?)

0EH 雙字 緩沖區(qū)地址

12H 單字 緩沖區(qū)長度

14H 字節(jié) 6 DUP (?)

在緩沖區(qū)內按一定的格式填入參數,便可得到CD-ROM的各種狀態(tài)。

緩沖區(qū)的格式:

作用 長度 格式

取CD-ROM狀態(tài) 5 輸入:06 xx xx xx xx

返回:06 SS SS 00 00

說明:SS SS為狀態(tài)字,關鍵的有兩位

位0:1、開門 0、關門

位B:1、有盤 0、無盤

取CD總扇區(qū)數 5 輸入:08 xx xx xx xx

返回:08 LL LL LL LL

說明:LL LL LL LL為總扇區(qū)數

取音樂CD信息 7 輸入:0A xx xx xx xx xx xx

返回:0A xx NN TT SS MM xx

說明: NN為曲目數

MM為分鐘數

SS為秒數(0~59)

TT為扇區(qū)數(0~74)

CD的一個扇區(qū)大小為2048B

播放速度為每秒75扇區(qū)即150KB/s

取指定歌曲 7 輸入:0B NN xx xx xx xx xx

的起始時間 返回:0B NN TT SS MM xx xx

說明: NN為曲目序號

MM為起始分鐘數

SS為起始秒數(0~59)

TT為起始扇區(qū)數(0~74)

取播放狀態(tài) 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為扇區(qū)數(0~74)

ZM為總分鐘數

ZS為總秒數(0~59)

ZT為扇區(qū)數(0~74)

2.IOCTL OUTPUT

偏移量 類型 內容

00H 字節(jié) 1AH

01H 字節(jié) 00H

02H 字節(jié) 0CH

03H 字節(jié) 11 DUP(?)

0EH 雙字 緩沖區(qū)地址

12H 單字 緩沖區(qū)長度

14H 字節(jié) 6 DUP(?)

在緩沖區(qū)內按一定的格式填入參數,便可操縱CD-ROM的動作。

緩沖區(qū)的格式:

作用 長度 格式

出盒 1 輸入:00

解鎖出盒鍵 2 輸入:01 00

加鎖出盒鍵 2 輸入:01 01

入盒 1 輸入:05

3.PLAY AUDIO

偏移量 類型 內容

00H 字節(jié) 16H

01H 字節(jié) 00H

02H 字節(jié) 84H

03H 字節(jié) 10 DUP (?)

0DH 字節(jié) 01H

0EH 字節(jié) 起

[1] [2]