[轉(zhuǎn)]直接磁盤服務(wù)(DirectDiskService—INT13H)
Posted on 2008-09-28 09:25 沒畫完的畫 閱讀(195) 評(píng)論(0) 編輯 收藏 引用 所屬分類: Reverse Engineering & ASM00H —磁盤系統(tǒng)復(fù)位0EH —讀扇區(qū)緩沖區(qū)
01H —讀取磁盤系統(tǒng)狀態(tài)0FH —寫扇區(qū)緩沖區(qū)
02H —讀扇區(qū)10H —讀取驅(qū)動(dòng)器狀態(tài)
03H —寫扇區(qū)11H —校準(zhǔn)驅(qū)動(dòng)器
04H —檢驗(yàn)扇區(qū)12H —控制器RAM診斷
05H —格式化磁道13H —控制器驅(qū)動(dòng)診斷
06H —格式化壞磁道14H —控制器內(nèi)部診斷
07H —格式化驅(qū)動(dòng)器15H —讀取磁盤類型
08H —讀取驅(qū)動(dòng)器參數(shù)16H —讀取磁盤變化狀態(tài)
09H —初始化硬盤參數(shù)17H —設(shè)置磁盤類型
0AH —讀長(zhǎng)扇區(qū)18H —設(shè)置格式化媒體類型
0BH —寫長(zhǎng)扇區(qū)19H —磁頭保護(hù)
0CH —查尋1AH —格式化ESDI驅(qū)動(dòng)器
0DH —硬盤系統(tǒng)復(fù)位
(1)、功能00H
功能描述:磁盤系統(tǒng)復(fù)位
入口參數(shù):AH=00H
DL=驅(qū)動(dòng)器,00H~7FH:軟盤;80H~0FFH:硬盤
出口參數(shù):CF=0——操作成功,AH=00H,否則,AH=狀態(tài)代碼,參見功能號(hào)01H中的說明
(2)、功能01H
功能描述:讀取磁盤系統(tǒng)狀態(tài)
入口參數(shù):AH=01H
DL=驅(qū)動(dòng)器,00H~7FH:軟盤;80H~0FFH:硬盤
出口參數(shù):AH=00H,AL=狀態(tài)代碼,其定義如下:
00H — 無錯(cuò) 01H — 非法命令
02H — 地址目標(biāo)未發(fā)現(xiàn)03H — 磁盤寫保護(hù)(軟盤)
04H — 扇區(qū)未發(fā)現(xiàn)05H — 復(fù)位失敗(硬盤)
06H — 軟盤取出(軟盤)07H — 錯(cuò)誤的參數(shù)表(硬盤)
08H — DMA越界(軟盤)09H — DMA超過64K界限
0AH — 錯(cuò)誤的扇區(qū)標(biāo)志(硬盤)0BH — 錯(cuò)誤的磁道標(biāo)志(硬盤)
0CH — 介質(zhì)類型未發(fā)現(xiàn)(軟盤)0DH — 格式化時(shí)非法扇區(qū)號(hào)(硬盤)
0EH — 控制數(shù)據(jù)地址目標(biāo)被發(fā)現(xiàn)(硬盤)0FH — DMA仲裁越界(硬盤)
10H — 不正確的CRC或ECC編碼11H — ECC校正數(shù)據(jù)錯(cuò)(硬盤)
CRC:Cyclic Redundancy Check code
ECC:Error Checking & Correcting code
20H — 控制器失敗40H — 查找失敗
80H — 磁盤超時(shí)(未響應(yīng))AAH — 驅(qū)動(dòng)器未準(zhǔn)備好(硬盤)
BBH — 未定義的錯(cuò)誤(硬盤)CCH — 寫錯(cuò)誤(硬盤)
E0H — 狀態(tài)寄存器錯(cuò)(硬盤)FFH — 檢測(cè)操作失敗(硬盤)
(3)、功能02H
功能描述:讀扇區(qū)
入口參數(shù):AH=02H
AL=扇區(qū)數(shù)
CH=柱面
CL=扇區(qū)
DH=磁頭
DL=驅(qū)動(dòng)器,00H~7FH:軟盤;80H~0FFH:硬盤
ES:BX=緩沖區(qū)的地址
出口參數(shù):CF=0——操作成功,AH=00H,AL=傳輸?shù)纳葏^(qū)數(shù),否則,AH=狀態(tài)代碼,參見功能號(hào)01H中的說明
(4)、功能03H
功能描述:寫扇區(qū)
入口參數(shù):AH=03H
AL=扇區(qū)數(shù)
CH=柱面
CL=扇區(qū)
DH=磁頭
DL=驅(qū)動(dòng)器,00H~7FH:軟盤;80H~0FFH:硬盤
ES:BX=緩沖區(qū)的地址
出口參數(shù):CF=0——操作成功,AH=00H,AL=傳輸?shù)纳葏^(qū)數(shù),否則,AH=狀態(tài)代碼,參見功能號(hào)01H中的說明
(5)、功能04H
功能描述:檢驗(yàn)扇區(qū)
入口參數(shù):AH=04H
AL=扇區(qū)數(shù)
CH=柱面
CL=扇區(qū)
DH=磁頭
DL=驅(qū)動(dòng)器,00H~7FH:軟盤;80H~0FFH:硬盤
ES:BX=緩沖區(qū)的地址
出口參數(shù):CF=0——操作成功,AH=00H,AL=被檢驗(yàn)的扇區(qū)數(shù),否則,AH=狀態(tài)代碼,參見功能號(hào)01H中的說明
(6)、功能05H
功能描述:格式化磁道
入口參數(shù):AH=05H
AL=交替(Interleave)
CH=柱面
DH=磁頭
DL=驅(qū)動(dòng)器,00H~7FH:軟盤;80H~0FFH:硬盤
ES:BX=地址域列表的地址
出口參數(shù):CF=0——操作成功,AH=00H,否則,AH=狀態(tài)代碼,參見功能號(hào)01H中的說明
(7)、功能06H
功能描述:格式化壞磁道
入口參數(shù):AH=06H
AL=交替
CH=柱面
DH=磁頭
DL=80H~0FFH:硬盤
ES:BX=地址域列表的地址
出口參數(shù):CF=0——操作成功,AH=00H,否則,AH=狀態(tài)代碼,參見功能號(hào)01H中的說明
(8)、功能07H
功能描述:格式化驅(qū)動(dòng)器
入口參數(shù):AH=07H
AL=交替
CH=柱面
DL=80H~0FFH:硬盤
出口參數(shù):CF=0——操作成功,AH=00H,否則,AH=狀態(tài)代碼,參見功能號(hào)01H中的說明
(9)、功能08H
功能描述:讀取驅(qū)動(dòng)器參數(shù)
入口參數(shù):AH=08H
DL=驅(qū)動(dòng)器,00H~7FH:軟盤;80H~0FFH:硬盤
出口參數(shù):CF=1——操作失敗,AH=狀態(tài)代碼,參見功能號(hào)01H中的說明,否則, BL=01H — 360K
=02H — 1.2M
=03H — 720K
=04H — 1.44M
CH=柱面數(shù)的低8位
CL的位7-6=柱面數(shù)的該2位
CL的位5-0=扇區(qū)數(shù)
DH=磁頭數(shù)
DL=驅(qū)動(dòng)器數(shù)
ES:DI=磁盤驅(qū)動(dòng)器參數(shù)表地址
(10)、功能09H
功能描述:初始化硬盤參數(shù)
入口參數(shù):AH=09H
DL=80H~0FFH:硬盤(還有有關(guān)參數(shù)表問題,在此從略)
出口參數(shù):CF=0——操作成功,AH=00H,否則,AH=狀態(tài)代碼,參見功能號(hào)01H中的說明
(11)、功能0AH
功能描述:讀長(zhǎng)扇區(qū),每個(gè)扇區(qū)隨帶四個(gè)字節(jié)的ECC編碼
入口參數(shù):AH=0AH
AL=扇區(qū)數(shù)
CH=柱面
CL=扇區(qū)
DH=磁頭
DL=80H~0FFH:硬盤
ES:BX=緩沖區(qū)的地址
出口參數(shù):CF=0——操作成功,AH=00H,AL=傳輸?shù)纳葏^(qū)數(shù),否則,AH=狀態(tài)代碼,參見功能號(hào)01H中的說明
(12)、功能0BH
功能描述:寫長(zhǎng)扇區(qū),每個(gè)扇區(qū)隨帶四個(gè)字節(jié)的ECC編碼
入口參數(shù):AH=0BH
AL=扇區(qū)數(shù)
CH=柱面
CL=扇區(qū)
DH=磁頭
DL=80H~0FFH:硬盤
ES:BX=緩沖區(qū)的地址
出口參數(shù):CF=0——操作成功,AH=00H,AL=傳輸?shù)纳葏^(qū)數(shù),否則,AH=狀態(tài)代碼,參見功能號(hào)01H中的說明
(13)、功能0CH
功能描述:查尋
入口參數(shù):AH=0CH
CH=柱面的低8位
CL(7-6位)=柱面的高2位
DH=磁頭
DL=80H~0FFH:硬盤
出口參數(shù):CF=0——操作成功,AH=00H,否則,AH=狀態(tài)代碼,參見功能號(hào)01H中的說明
(14)、功能0DH
功能描述:硬盤系統(tǒng)復(fù)位
入口參數(shù):AH=0DH
DL=80H~0FFH:硬盤
出口參數(shù):CF=0——操作成功,AH=00H,否則,AH=狀態(tài)代碼,參見功能號(hào)01H中的說明
(15)、功能0EH
功能描述:讀扇區(qū)緩沖區(qū)
入口參數(shù):AH=0EH
ES:BX=緩沖區(qū)的地址
出口參數(shù):CF=0——操作成功,否則,AH=狀態(tài)代碼,參見功能號(hào)01H中的說明
(16)、功能0FH
功能描述:寫扇區(qū)緩沖區(qū)
入口參數(shù):AH=0FH
ES:BX=緩沖區(qū)的地址
出口參數(shù):CF=0——操作成功,否則,AH=狀態(tài)代碼,參見功能號(hào)01H中的說明
(17)、功能10H
功能描述:讀取驅(qū)動(dòng)器狀態(tài)
入口參數(shù):AH=10H
DL=80H~0FFH:硬盤
出口參數(shù):CF=0——操作成功,AH=00H,否則,AH=狀態(tài)代碼,參見功能號(hào)01H中的說明
(18)、功能11H
功能描述:校準(zhǔn)驅(qū)動(dòng)器
入口參數(shù):AH=11H
DL=80H~0FFH:硬盤
出口參數(shù):CF=0——操作成功,AH=00H,否則,AH=狀態(tài)代碼,參見功能號(hào)01H中的說明
(19)、功能12H
功能描述:控制器RAM診斷
入口參數(shù):AH=12H
出口參數(shù):CF=0——操作成功,否則,AH=狀態(tài)代碼,參見功能號(hào)01H中的說明
(20)、功能13H
功能描述:控制器驅(qū)動(dòng)診斷
入口參數(shù):AH=13H
出口參數(shù):CF=0——操作成功,否則,AH=狀態(tài)代碼,參見功能號(hào)01H中的說明
(21)、功能14H
功能描述:控制器內(nèi)部診斷
入口參數(shù):AH=14H
出口參數(shù):CF=0——操作成功,否則,AH=狀態(tài)代碼,參見功能號(hào)01H中的說明
(22)、功能15H
功能描述:讀取磁盤類型
入口參數(shù):AH=15H
DL=驅(qū)動(dòng)器,00H~7FH:軟盤;80H~0FFH:硬盤
出口參數(shù):CF=1——操作失敗,AH=狀態(tài)代碼,參見功能號(hào)01H中的說明, 否則,AH=00H — 未安裝驅(qū)動(dòng)器
=01H — 無改變線支持的軟盤驅(qū)動(dòng)器
=02H — 帶有改變線支持的軟盤驅(qū)動(dòng)器
=03H — 硬盤,CX:DX=512字節(jié)的扇區(qū)數(shù)
(23)、功能16H
功能描述:讀取磁盤變化狀態(tài)
入口參數(shù):AH=16H
DL=00H~7FH:軟盤
出口參數(shù):CF=0——磁盤未改變,AH=00H,否則,AH=06H,參見功能號(hào)01H中的說明
(24)、功能17H
功能描述:設(shè)置磁盤類型
入口參數(shù):AH=17H
DL=00H~7FH:軟盤 AL=00H — 未用
=01H — 360K在360K驅(qū)動(dòng)器中
=02H — 360K在1.2M驅(qū)動(dòng)器中
=03H — 1.2M在1.2M驅(qū)動(dòng)器中
=04H — 720K在720K驅(qū)動(dòng)器中
出口參數(shù):CF=0——操作成功,AH=00H,否則,AH=狀態(tài)編碼,參見功能號(hào)01H中的說明
(25)、功能18H
功能描述:設(shè)置格式化媒體類型
入口參數(shù):AH=18H
CH=柱面數(shù)
CL=每磁道的扇區(qū)數(shù)
DL=00H~7FH:軟盤
出口參數(shù):CF=0——操作成功,AH=00H,ES:DI=介質(zhì)類型參數(shù)表地址,否則,AH=狀態(tài)編碼,參見功能號(hào)01H中的說明
(26)、功能19H
功能描述:磁頭保護(hù),僅在PS/2中有效,在此從略
(27)、功能1AH
功能描述:格式化ESDI驅(qū)動(dòng)器,僅在PS/2中有效,在此從略