BIOS系統服務 —— 直接磁碟服務(int 0x13)

cherisegege發表於2018-04-06

直接磁碟服務(Direct Disk Service——INT 13H)

00H —磁碟系統復位                  0EH —讀扇區緩衝區

01H —讀取磁碟系統狀態               0FH —寫扇區緩衝區

02H —讀扇區                      10H —讀取驅動器狀態

03H —寫扇區                      11H —校準驅動器

04H —檢驗扇區                     12H —控制器RAM診斷

05H —格式化磁軌                   13H —控制器驅動診斷

06H —格式化壞磁軌                  14H —控制器內部診斷

07H —格式化驅動器                  15H —讀取磁碟型別

08H —讀取驅動器引數                 16H —讀取磁碟變化狀態

09H —初始化硬碟引數                 17H —設定磁碟型別

0AH —讀長扇區                     18H —設定格式化媒體型別

0BH —寫長扇區                     19H —磁頭保護

0CH —查尋                        1AH —格式化ESDI驅動器

0DH —硬碟系統復位

 

(1)       功能00H

 

功能描述:磁碟系統復位

入口引數:AH=00H

DL=驅動器,00H~7FH:軟盤;80H~0FFH:硬碟

出口引數:CF=0——操作成功,AH=00H,否則,AH=狀態程式碼,參見功能號01H中的說明

 

(2)       功能01H

 

功能描述:讀取磁碟系統狀態

入口引數:AH=01H

DL=驅動器,00H~7FH:軟盤;80H~0FFH:硬碟

出口引數:AH=00H,AL=狀態程式碼,其定義如下:

00H — 無錯 01H — 非法命令

02H — 地址目標未發現03H — 磁碟防寫(軟盤)

04H — 扇區未發現05H — 復位失敗(硬碟)

06H — 軟盤取出(軟盤)07H — 錯誤的參數列(硬碟)

08H — DMA越界(軟盤)09H — DMA超過64K界限

0AH — 錯誤的扇區標誌(硬碟)0BH — 錯誤的磁軌標誌(硬碟)

0CH — 介質型別未發現(軟盤)0DH — 格式化時非法扇區號(硬碟)

0EH — 控制資料地址目標被發現(硬碟)0FH — DMA仲裁越界(硬碟)

10H — 不正確的CRC或ECC編碼11H — ECC校正資料錯(硬碟)

 CRC:Cyclic Redundancy Check code

 ECC:Error Checking & Correcting code

20H — 控制器失敗40H — 查詢失敗

80H — 磁碟超時(未響應)AAH — 驅動器未準備好(硬碟)

BBH — 未定義的錯誤(硬碟)CCH — 寫錯誤(硬碟)

E0H — 狀態暫存器錯(硬碟)FFH — 檢測操作失敗(硬碟)

 

(3)       功能02H

 

功能描述:讀扇區

入口引數:AH=02H

AL=扇區數

CH=柱面

CL=扇區

DH=磁頭

DL=驅動器,00H~7FH:軟盤;80H~0FFH:硬碟

ES:BX=緩衝區的地址

出口引數:CF=0——操作成功,AH=00H,AL=傳輸的扇區數,否則,AH=狀態程式碼,參見功能號01H中的說明

 

(4)       功能03H

 

功能描述:寫扇區

入口引數:AH=03H

AL=扇區數

CH=柱面

CL=扇區

DH=磁頭

DL=驅動器,00H~7FH:軟盤;80H~0FFH:硬碟

ES:BX=緩衝區的地址

出口引數:CF=0——操作成功,AH=00H,AL=傳輸的扇區數,否則,AH=狀態程式碼,參見功能號01H中的說明

 

(5)       功能04H

 

功能描述:檢驗扇區

入口引數:AH=04H

AL=扇區數

CH=柱面

CL=扇區

DH=磁頭

DL=驅動器,00H~7FH:軟盤;80H~0FFH:硬碟

ES:BX=緩衝區的地址

出口引數:CF=0——操作成功,AH=00H,AL=被檢驗的扇區數,否則,AH=狀態程式碼,參見功能號01H中的說明。

 

(6)       功能05H

 

功能描述:格式化磁軌

入口引數:AH=05H

AL=交替(Interleave)

CH=柱面

DH=磁頭

DL=驅動器,00H~7FH:軟盤;80H~0FFH:硬碟

ES:BX=地址域列表的地址

出口引數:CF=0——操作成功,AH=00H,否則,AH=狀態程式碼,參見功能號01H中的說明。

 

(7)       功能06H

 

功能描述:格式化壞磁軌

入口引數:AH=06H

AL=交替

CH=柱面

DH=磁頭

DL=80H~0FFH:硬碟

ES:BX=地址域列表的地址

出口引數:CF=0——操作成功,AH=00H,否則,AH=狀態程式碼,參見功能號01H中的說明

 

(8)       功能07H

 

功能描述:格式化驅動器

入口引數:AH=07H

AL=交替

CH=柱面

DL=80H~0FFH:硬碟

出口引數:CF=0——操作成功,AH=00H,否則,AH=狀態程式碼,參見功能號01H中的說明

 

(9)       功能08H

 

功能描述:讀取驅動器引數

入口引數:AH=08H

DL=驅動器,00H~7FH:軟盤;80H~0FFH:硬碟

出口引數:CF=1——操作失敗,AH=狀態程式碼,參見功能號01H中的說明,否則, BL=01H — 360K

=02H — 1.2M

=03H — 720K

=04H — 1.44M

CH=柱面數的低8位

CL的位7-6=柱面數的該2位

CL的位5-0=扇區數

DH=磁頭數

DL=驅動器數

ES:DI=磁碟驅動器參數列地址

 

(10)   功能09H

 

功能描述:初始化硬碟引數

入口引數:AH=09H

DL=80H~0FFH:硬碟(還有有關參數列問題,在此從略)

出口引數:CF=0——操作成功,AH=00H,否則,AH=狀態程式碼,參見功能號01H中的說明

 

(11)   功能0AH

 

功能描述:讀長扇區,每個扇區隨帶四個位元組的ECC編碼

入口引數:AH=0AH

AL=扇區數

CH=柱面

CL=扇區

DH=磁頭

DL=80H~0FFH:硬碟

ES:BX=緩衝區的地址

出口引數:CF=0——操作成功,AH=00H,AL=傳輸的扇區數,否則,AH=狀態程式碼,參見功能號01H中的說明

 

(12)   功能0BH

 

功能描述:寫長扇區,每個扇區隨帶四個位元組的ECC編碼

入口引數:AH=0BH

AL=扇區數

CH=柱面

CL=扇區

DH=磁頭

DL=80H~0FFH:硬碟

ES:BX=緩衝區的地址

出口引數:CF=0——操作成功,AH=00H,AL=傳輸的扇區數,否則,AH=狀態程式碼,參見功能號01H中的說明

 

(13)   功能0CH

 

功能描述:查尋

入口引數:AH=0CH

CH=柱面的低8位

CL(7-6位)=柱面的高2位

DH=磁頭

DL=80H~0FFH:硬碟

出口引數:CF=0——操作成功,AH=00H,否則,AH=狀態程式碼,參見功能號01H中的說明

 

(14)   功能0DH

 

功能描述:硬碟系統復位

入口引數:AH=0DH

DL=80H~0FFH:硬碟

出口引數:CF=0——操作成功,AH=00H,否則,AH=狀態程式碼,參見功能號01H中的說明

 

(15)   功能0EH

 

功能描述:讀扇區緩衝區

入口引數:AH=0EH

ES:BX=緩衝區的地址

出口引數:CF=0——操作成功,否則,AH=狀態程式碼,參見功能號01H中的說明

 

(16)   功能0FH

 

功能描述:寫扇區緩衝區

入口引數:AH=0FH

ES:BX=緩衝區的地址

出口引數:CF=0——操作成功,否則,AH=狀態程式碼,參見功能號01H中的說明

 

(17)   功能10H

 

功能描述:讀取驅動器狀態

入口引數:AH=10H

DL=80H~0FFH:硬碟

出口引數:CF=0——操作成功,AH=00H,否則,AH=狀態程式碼,參見功能號01H中的說明

 

(18)   功能11H

 

功能描述:校準驅動器

入口引數:AH=11H

DL=80H~0FFH:硬碟

出口引數:CF=0——操作成功,AH=00H,否則,AH=狀態程式碼,參見功能號01H中的說明

 

(19)   功能12H

 

功能描述:控制器RAM診斷

入口引數:AH=12H

出口引數:CF=0——操作成功,否則,AH=狀態程式碼,參見功能號01H中的說明

 

(20)   功能13H

 

功能描述:控制器驅動診斷

入口引數:AH=13H

出口引數:CF=0——操作成功,否則,AH=狀態程式碼,參見功能號01H中的說明

 

(21)   功能14H

 

功能描述:控制器內部診斷

入口引數:AH=14H

出口引數:CF=0——操作成功,否則,AH=狀態程式碼,參見功能號01H中的說明

 

(22)   功能15H

 

功能描述:讀取磁碟型別

入口引數:AH=15H

DL=驅動器,00H~7FH:軟盤;80H~0FFH:硬碟

出口引數:CF=1——操作失敗,AH=狀態程式碼,參見功能號01H中的說明, 否則,AH=00H — 未安裝驅動器

=01H — 無改變線支援的軟盤驅動器

=02H — 帶有改變線支援的軟盤驅動器

=03H — 硬碟,CX:DX=512位元組的扇區數

 

(23)   功能16H

 

功能描述:讀取磁碟變化狀態

入口引數:AH=16H

DL=00H~7FH:軟盤

出口引數:CF=0——磁碟未改變,AH=00H,否則,AH=06H,參見功能號01H中的說明

 

(24)   功能17H

 

功能描述:設定磁碟型別

入口引數:AH=17H

DL=00H~7FH:軟盤 AL=00H — 未用

=01H — 360K在360K驅動器中

=02H — 360K在1.2M驅動器中

=03H — 1.2M在1.2M驅動器中

=04H — 720K在720K驅動器中

出口引數:CF=0——操作成功,AH=00H,否則,AH=狀態編碼,參見功能號01H中的說明

 

(25)   功能18H

 

功能描述:設定格式化媒體型別

入口引數:AH=18H

CH=柱面數

CL=每磁軌的扇區數

DL=00H~7FH:軟盤

出口引數:CF=0——操作成功,AH=00H,ES:DI=介質型別參數列地址,否則,AH=狀態編碼,參見功能號01H中的說明

 

(26)   功能19H

 

功能描述:磁頭保護,僅在PS/2中有效,在此從略

 

(27)   功能1AH

 

功能描述:格式化ESDI驅動器,僅在PS/2中有效,在此從略




相關文章