在线观看日产精品_成人性生交大片免费看中文网站_神马影院午夜我不卡_亚洲国产精品久久久久久

中文核心期刊咨詢網權威的中英文核心期刊目錄大全,最新2023中文核心期刊目錄查詢,英文論文期刊發表學術咨詢服務。
中文核心期刊咨詢網

CD-ROM編程深入計算機論文發表價格

作者: admin2013-09-02閱讀:文章來源:未知

  本文引自《計算機學報》 雜志是中國計算機領域權威性學術刊物。

  在多媒體系統中,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

相關論文

主站蜘蛛池模板: 泸水县| 临湘市| 贵溪市| 惠安县| 澎湖县| 安康市| 天全县| 土默特左旗| 怀宁县| 大关县| 阳信县| 夹江县| 霍州市| 永靖县| 邢台县| 义乌市| 阜城县| 布尔津县| 海原县| 宜城市| 湘西| 禹州市| 凉城县| 瓦房店市| 富川| 永川市| 宝清县| 湖南省| 太仆寺旗| 台前县| 康马县| 疏附县| 扬中市| 新余市| 固阳县| 礼泉县| 蓬莱市| 沐川县| 丰镇市| 天台县| 和林格尔县|