| BIOS岔斷向量表 來源:李雅良 |
|---|
INT 00H 除法溢位
INT 01H 單步執行
INT 02H 不可遮罩中斷
INT 03H 中斷點 [暗樁]
INT 04H 溢位 [INTO]
INT 05H 列印螢幕內容 [Prt Sc]
AH=05 50:00 [00 成功 / 01 列印中 / FF 有錯誤]
INT 06H 保留未用
INT 07H 保留未用
INT 08H 系統計時器 [18.2次/秒]
TIMER_LOW [0040:006C]
TIMER_HIGH [0040:006E]
INT 09H 鍵盤中斷
INT 0AH 保留未用
INT 0BH 保留未用
INT 0CH 保留未用
INT 0DH 保留未用
INT 0EH 磁碟中斷
INT 0FH 保留未用
INT 10H 視訊I/O
AH=00 設定視訊模式 I:AL=00 黑白,文字 [預設狀態]
AL=01 彩色,文字
AL=02 黑白,文字
AL=03 彩色,文字
AL=04 彩色,圖形
AL=05 黑白,圖形
AL=06 黑白,圖形
AH=01 設定游標列線 I:CH 游標開始列 [00-13]
CL 游標結束列 [00-13]
AH=02 設定游標位置 I:DH,DL 列[X],行[Y]
BH 頁數 [圖形時為00]
AH=03 讀游標位置 I:BH 頁數 [圖形時為00]
O:DH,DL 列[X],行[Y]
CH,CL 目前游標模式
AH=04 讀光筆位置 O:AH=00 光筆開關未壓下
AH=01 有效光筆值已在暫存器中
DH,DL 列[X],行[Y]
CX 掃描列數 [0-199]
BX 圈點行數 [0-319,639]
AH=05 選擇目前顯示頁 I:AL 新頁的值
[ 文字模式 ] [模式0及1時為0-7]
[模式2及3時為0-3]
AH=06 向上捲動螢幕 I:AL 捲動列數 [0=CLS]
CH,CL 左上角 X,Y
DH,DL 右下角 X,Y
BH 字元屬性
AH=07 向下捲動螢幕 I:AL 捲動列數 [0=CLS]
CH,CL 左上角 X,Y
DH,DL 右下角 X,Y
BH 字元屬性
AH=08 讀取游標位置 I:BH 顯示頁
的字元屬性 O:AL 讀取的字元
AH 讀取的字元屬性
AH=09 在目前游標位置 I:BH 顯示頁
寫入字元 BL 字元屬性/顏色
游標不動 CX 重複次數
AL 將寫入的字元
AH=0A 在目前游標位置 I:BH 顯示頁
寫入字元 CX 重複次數
AL 將寫入的字元
AH=0B 設定調色板 I:BH 背景顏色或調色板的值
[320*200圖形] BL=00 背景顏色
BL=01 調色板
AH=0C 畫出圖點 I:AL 顏色
CX,DX 行,列
AH=0D 讀取圖點 I:AL 顏色
CX,DX 行,列
AH=0E 寫字元到螢幕 I:AL 寫出的字元
游標前進 BL 屬性/顏色
BH 頁數
AH=0F 讀入目前視訊狀態O:AL 目前模式
AH 螢幕上字元行數
BH 頁數
INT 11H 設備檢查 O:AX=11-- ---- ---- ---- 印表機數
AX=---1 ---- ---- ---- 1:有GAME I/O 0:無GAME I/O
AX=---- 111- ---- ---- RS-232 卡數量
AX=---- ---- 11-- ---- 磁碟機數量 00=1/01=2/10=3/11=4
AX=---- ---- --11 ---- 視訊模式 00=未用
01=40X25 B&W,COLOR CARD
10=80X25 B&W,COLOR CARD
11=80X25 B&W,MONO CARD
AX=---- ---- ---- 11-- RAM 00=16K/01=32K/10=48K/11=64K
AX=---- ---- ---- ---1 DISK 0=沒有磁碟, 1=有磁碟
INT 12H 檢查主機板上的K數 O:AX K數
INT 13H 磁碟I/O
AH=00 重置磁碟系統
AH=01 讀取磁碟狀態 O:AL=80 磁碟機不反應 [時間用盡]
AL=40 SEEK失敗
AL=20 控制器錯誤
AL=10 讀不到正確的CRC
AL=08 DMA逾位 [ >64K ]
AL=04 找不到指定磁區
AL=03 WRITE PROTECT
AL=02 找不到位址標記
AL=01 不正確的命令
AH=02 讀磁區進記憶體 I:AL 磁區數目 [01-09] 2/3/4/
AH=03 從記憶體寫出 ES:BX 緩衝區位址 2/3/
AH=04 驗證磁區 ES:BX 磁區資訊 /5
AH=05 格式化磁軌 CH 磁軌號碼 [00-39] 2/3/4/5
CL 磁區號碼 [01-09] 2/3/4
DH 磁頭號碼 [00-01] 2/3/4/5
DL 磁碟號碼 [00-03] 2/3/4/5
O:AL 已讀取磁區的數量 2/3/4
CF=00 / AH=00 作業成功 2/3/4/5
CF=01 / AH=狀態 作業失敗 [狀態同AH=01]
*:[0000:0078-007B] 指向磁碟機參數表
[0000:0522-052C] 一般位址
INT 14H 通訊I/O
AH=00 初使化 I:DX 串列埠號碼 [ 0 = COM1 / 1 = COM2 ]
串列埠參數 AL 參數列 [如下表]
O:AX 串列埠狀態 [同功能3]
Bit 7 6 5 : 傳輸速率 Bit 4 3 : 位元檢核 Bit 2 : 停止位元 Bit 1 0 : 字元大小
---------------------- ------------------ ---------------- ------------------
0 0 0 = 100 Baud 0 0 = 無意義 0 = 一個 0 0 = 沒有使用
0 0 1 = 150 Baud 0 1 = 奇位檢核 1 = 兩個 0 1 = 沒有使用
0 1 0 = 300 Baud 1 0 = 無意義 1 0 = 7位元
0 1 1 = 600 Baud 1 1 = 偶位檢核 1 1 = 8位元
1 0 0 = 1,200 Baud
1 0 1 = 2,400 Baud
1 1 0 = 4,800 Baud
1 1 1 = 9,600 Baud
AH=01 送出一個字元 I:DX 串列埠號碼 [ 0 = COM1 / 1 = COM2 ]
AL 字元
O:AX 串列埠狀態 [同功能3]
AH=02 接收一個字元 I:DX 串列埠號碼 [ 0 = COM1 / 1 = COM2 ]
O:AL 字元 或
AX 串列埠狀態 [同功能3]
AH=03 得到串列埠狀態 I:DX 串列埠號碼 [ 0 = COM1 / 1 = COM2 ]
O:AX 串列埠狀態
AH: 線上狀態 80 = 時間用盡
40 = 傳輸移位暫存器空白
20 = 傳輸保存暫存器空白
10 = 中斷檢出
08 = 結構錯誤
04 = 位元檢核錯誤
02 = 起過錯誤
01 = 資料已準備好
AL: 數據機狀態 80 = 接收線訊號檢出
40 = 環顯示
20 = 資料設定完成
10 = 已送完
08 = DELTA 接收訊號檢出
04 = 路徑環檢出
02 = DELTA 資料設定完成
01 = DELTA 已送完
INT 15H 卡帶I/O
AH=00 開啟卡帶機馬達
AH=01 關閉卡帶機馬達
AH=02 由卡帶機讀取一或I:CX 需讀取的位元組數
多個256BYTE區段 ES:BX 指向資料緩衝區
O:DX 已讀取的位元組數量
ES:BX 指向罪後一個位元加一位置
CF=00 作業成功
CF=01 發生錯誤
AH=01 錯誤
AH=02 資料傳輸流失
AH=03 找不到資料
AH=03 寫入一個或多個 I:CX 寫入的位元組數量
256BYTE區段至卡 ES:BX 指向資料緩衝區
帶 O:CX=00
ES:BX 指向最後一個位元加一位置
INT 16H 鍵盤I/O
AH=00 O:AH 掃瞄碼
AL 字元碼
AH=01 O:ZF 0/1=有/無字元進緩衝區
AH=02 O:AL 鍵盤狀態位元組 [0017H] KB_FLAG
[0018H] KB_FLAG_1
80=插入狀態 INSERT MODE
40=大寫狀態 CAP LOCK
20=數字狀態 NUM LOCK
10=捲動鎖定 SCROLL LOCK
08=按下 ALT 鍵
04=按下 CTRL 鍵
02=按下左邊 SHIFT 鍵
01=按下右邊 SHIFT 鍵
INT 17H 印表機I/O
AH=00 印出一個字元 I:AL 欲印出的字元
DX 使用的列表機(0-2)
O:AH 作業結果狀態
80=忙碌中 [BUSY]
40=認知
20=紙張用盡 [OUT OF PAPER]
10=被選用 [SELECT]
08=I/O錯誤 [I/O ERROR]
01=時間結束
INT 18H 卡帶BASIC
INT 19H 開機重置
INT 1AH 日計時 [18.2次/秒]
AH=00 讀取時間計數 O:CX,DX
[必需設定IF=1] AL 是否超過24小時
AH=01 設定時間計數 I:CX,DX
AH=02 讀取充電時鐘 O:CH = 時
CL = 分
DH = 秒
AH=03 寫入充電時鐘 I:CH = 時
CL = 分
DH = 秒
DL = 0: 標準時間 1:日光節約時間
AH=04 由充電時鐘 I:CH = 世紀 (19-20)
讀取日期 CL = 年
DH = 月
DL = 日
AH=05 由充電時鐘 I:CH = 世紀 (19-20)
設定鬧鐘日期 CL = 年
DH = 月
DL = 日
AH=06 設定鬧鐘 I:CH = 時
CL = 分
DH = 秒
AH=07 重設鬧鐘
INT 1BH 鍵盤截斷 [Ctrl-Break]
INT 1CH 計時器滴嗒 [18.2次/秒]
INT 1DH 初設視訊,指向視訊控制參數表
INT 1EH 磁碟參數,指向磁碟基本參數表
INT 1FH 圖形字元擴充部份,指向高視訊圖形字元
INT 20H 終止程式
INT 21H 要求功能函數
AH=00 終止程式
AH=01 等待鍵盤字元並顯示 O:AL 鍵盤字元 [會檢查 Ctrl-Break]
AH=02 顯示一字元 I:DL 顯示字元
AH=03 等待非同步輸入字元 O:AL 非同步字元
AH=04 輸出一字元至非同步裝置 I:DL 輸出字元
AH=05 印出一字元 I:DL 印出字元
AH=06 讀取鍵盤字元 I:DL FF
O:AL 鍵盤字元
顯示一字元 I:DL 顯示字元 [<>FF]
AH=07 等待鍵盤字元不顯示 O:AL 鍵盤字元 [不檢查 Ctrl-Break]
AH=08 等待鍵盤字元不顯示 O:AL 鍵盤字元 [會檢查 Ctrl-Break]
AH=09 顯示記憶體中的字串 I:DS:DX 字串位址 [+$]
AH=0A 將鍵盤字元讀入緩衝區 I:DS:DX 緩衝區位址
AH=0B 讀取鍵盤狀態 O:AL 00/無字 FF/有字[會檢查 Ctrl-Break]
AH=0C 清除鍵盤緩衝區並 I:AL 鍵盤功能號碼 (1,6,7,8,A)
呼叫鍵入功能 O: 每一個鍵盤功能
AH=0D 重置磁碟機
AH=0E 選用自然設定的磁碟機 I:DL 磁碟機號碼 [0=A,1=B]
O:AL 系統中磁碟機數 [1/2]
AH=0F 開啟檔案 I:DS:DX 未開檔FCB欲放的位址
O:AL 00/找到檔案 FF/找不到檔案
AH=10 關閉檔案 I:DS:DX 已開檔FCB位址
O:AL 00/找到檔案 FF/找不到檔案
AH=11 尋找檔名 I:DS:DX 未開檔FCB欲放的位址
O:AL 00/找到檔案 FF/找不到檔案
AH=12 找出下一個符合的檔名 I:DS:DX 未開檔FCB欲放的位址
O:AL 00/找到檔案 FF/找不到檔案
AH=13 刪除檔名 I:DS:DX 未開檔FCB欲放的位址
O:AL 00/找到檔案 FF/找不到檔案
AH=14 讀取循序檔 I:DS:DX 已開檔FCB位址
O:AL 0 傳送成功
1 資料錄中沒有資料
2 空間不足
3 讀取部分資料錄
AH=15 寫入循序檔 I:DS:DX 已開檔FCB位址
O:AL 0 傳送正確
1 磁碟已滿
2 空間不夠
AH=16 建一新檔 I:DS:DX 未開檔FCB欲放的位址
O:AL 00/檔案已建 FF/無空的記錄項
AH=17 檔案改名 I:DS:DX 原檔名位址
DS:DX+11H 新檔名位址
O:AL 00/改名成功 FF/找不到原檔名
AH=19 讀取預設的磁碟機號碼 O:AL 預設的磁碟機號碼 [0=A,1=B]
AH=1A 設定磁碟傳送位址 I:DS:DX 磁碟傳送位址
AH=1B 讀取配置表的位址 O:DS:DX 檔案配置表位址
DX 配置單位的數量
AL 資料錄/配置單位
CX 實際磁區的大小
AH=1C 得到FAT訊息 I:DL 磁碟機號碼
O:CX 每磁區位元組數
DS:DX 指向FAT識別位元組
AH=21 讀取隨機檔 I:DS:DX 已開檔FCB位址
O:AL 0 傳送成功
1 資料錄中沒有資料
2 空間不足
3 讀取部分資料錄
AH=22 寫入隨機檔 I:DS:DX 已開檔FCB位址
O:AL 0 傳送正確
1 磁碟已滿
2 空間不夠
AH=23 設定檔案大小 I:DS:DX 未開檔FCB欲放的位址
O:AL 00/檔案大小已設定
FF/找不到符合的入口
AH=24 設定隨機檔資料錄欄 I:DS:DX 已開檔FCB位址
AH=25 設定岔斷向量 I:DS:DX 向量指標位址
AL 岔斷型態碼
AH=26 建一新的程式段Segment I:DX 新段號碼
AH=27 讀取隨機資料區段Block I:DS:DX 已開檔FCB位址
O:AL 0 傳送成功
1 檔案結束
2 發生重疊
3 最後一資料錄為部分資料錄
AH=28 寫入隨機資料區段 I:DS:DX 已開檔FCB位址
O:AL 0 傳送成功
1 空間不足
AH=29 剖析檔名的語法 I:DS:SI 剖析命令的位址
ES:DI 未開檔FCB欲放的位址
AL 00/FF 忽略/不忽略 前導分隔字元
O:AL 00 剖析成功
01 檔名含 ? 或 *
FF 指定的磁碟機未可用
AH=2A 取得日期 O:CX 年 1980-2099
DH 月 1-12
DL 日 1-31
AH=2B 設定日期 I:CX 年 1980-2099
DH 月 1-12
DL 日 1-31
O:AL 00/FF 有/無 日期計數
AH=2C 取得時間 O:CH 時 0-23
CL 分 0-59
DH 秒 0-59
DL 1/100 0-99
AH=2D 設定時間 I:CH 時 0-23
CL 分 0-59
DH 秒 0-59
DL 1/100 0-99
O:AL 00/FF 有/無 時間計數
AH=2E 設定磁碟寫入查驗 I:AL=0 查驗開關 OFF
AL=1 查驗開關 ON
DL=00
AH=2F 取得磁碟轉移位址(DTA) O:ES:BX 指到目前的DTA
AL 返回碼
AH=30 得到DOS版本號碼 O:AL 主要版本號碼
AH 次要版本號碼
BX 0000
CX 0000
AH=31 結束但保留在記憶體內 I:DX 欲保留的記憶體大小 [K數*64]
AH=33 檢查 Ctrl-Break I:AL=0 檢查目前狀態
O:DL 0/1 = OFF/ON
I:AL=1 設定狀態
DL 0/1 = OFF/ON
AH=35 取得插斷向量 I:AL 插斷號碼
O:AX 返回碼
ES:BX 插斷向量
AH=36 得到磁碟剩餘可用空間 I:DL 磁碟機號碼
O:AL 每叢集磁區數
BX 可用叢集數
CX 每個磁區位元組數
DX 總叢集數
AH=38 取得有關國家資料 I:DS:DX 指向32位元緩衝區
AL=00 標準碼
AL= 國家碼
AL=FF 當國家碼>255時
BX 國家碼 [當AL=FF時]
O:AX 返回碼 [CF=01]
DS:DX 資料
BX 國家碼
AH=39 建立次目錄 I:DS:DX 指向ASCII字串
O:AX 返回碼
AH=3A 刪除次目錄 I:DS:DX 指向ASCII字串
O:AX 返回碼
AH=3B 改變目前次目錄 I:DS:DX 指向ASCII字串
O:AX 返回碼
AH=3C 建立檔案 I:CX 檔案屬性
DS:DX 指向ASCII字串
O:AX 檔案掌理或返回碼
AH=3D 開啟檔案 I:AL 存取碼
DS:DX 指向ASCII字串
O:AX 檔案掌理或返回碼
AH=3E 關閉檔案掌握 I:BX 檔案掌理
O:AX 返回碼
AH=3F 讀取檔案或裝置 I:BX 檔案掌理
CX 讀取位元組數
DS:DX 指向DTA緩衝區
O:AX 讀取位元組數或返回碼
AH=40 寫入檔案或裝置 I:BX 檔案掌理
CX 讀取位元組數
DS:DX 指向DTA緩衝區
O:AX 寫入位元組數或返回碼
AH=41 刪除檔案 I:DS:DX 指向ASCII字串
O:AX 返回碼
AH=42 搬移檔案指標 I:AL 方法碼
CX:DX 間距值
O:AX 返回碼 [如果 CF=1]
DS:AX 新的指標位置 [如果 CF=0]
AH=43 CHMOD 取得/設定檔案屬性 I:AL=00 由CX取得
AL=01 由CX設定
DS:DX 指向ASCII字串
O:AX 返回碼
CX 取得的屬性
AH=44 裝置輸出入控制 I:AL 次功能碼
BL 磁碟號碼
BX 檔案掌理
AH=45 DUP複製檔案掌理 I:BX 檔案掌理
O:AX 檔案掌理或返回碼
AH=46 CDUP複製檔案掌理 I:BX 已有檔案掌理
CX 第二個檔案掌理
O:AX 返回碼
CX 檔案掌理
AH=47 得到目前次目錄 I:DL 磁碟機號碼
DS:SI 指向資料區段
O:AX 返回碼 [CF=01]
DS:SI 路徑名稱 [CF=00]
AH=48 定位記憶體 I:BX 所要的記憶體 [以區段表示]
O:AX 區段位址或返回碼 [CF=01]
BX 最大可用區塊大小
AH=49 釋放定位記憶體 I:ES 釋放的區段區塊
O:AX 返回碼
AH=4A 更改定位記憶區塊 I:BX 所用的記憶體 [以區塊表示]
ES 區段區塊位址
O:AX 返回碼
BX 最大可能大小
AH=4B 執行或載入一個程式 I:DS:DX 路徑名稱的位址
ES:BX 指到參數區位址
AL=0 載入並執行
AL=3 載入
AH=4C 停止執行程式 O:AL 返回碼
AH=4D 取得前一程式結束時 O:AL 返回碼
的返回碼 AH 0 結束/中止
1 Ctrl-C
2 嚴重錯誤
3 結束而且駐留於記憶體中
AH=4E FIND:FIRST開始搜尋檔案 I:CX 要搜尋的屬性
DS:DX 指向ASCII字串
O:AX 返回碼
AH=4F 繼續搜尋檔案 I:DS:DX 由呼叫FIND FIRST而來
O:AX 返回碼
AH=54 得到查驗狀態 O:AL 查驗狀態
AH=56 重定檔案名稱 I:DS:DX 指向ASCII字串[舊檔案]
ES:DI 指向ASCII字串[新檔案]
O:AX 擴充的標準
AH=57 取得或設定 I:AL=00 取得
檔案日期及時間 AL=01 設定
BX 檔案掌理
CX 時間
DX 日期
O:AX 標準擴充返回碼
CX 時間
DX 日期
AH=59 得到擴充錯誤碼 I:BX 0000
O:AX 錯誤碼
BH 錯誤等級
BL 動作
CH 位置
AH=5A 建立暫時檔案 I:DS:DX 指向目標路徑名稱
CX 檔案屬性
O:AX 錯誤碼 [CF=1]
DS:DX 路徑名稱 [CF=0]
AH=5B 建立新檔案 I:DS:DX 指向目標路徑名稱
CX 檔案屬性
O:AX 掌理或錯誤碼
AH=5C 檔案存取鎖定和釋放 I:AL=00 鎖定
AL=01 釋放
BX 檔案掌理
CX:DX 鎖定間距
SI:DI 鎖定數量
O:AX 錯誤碼
AH=62 得到PSP位址 O:BX PSP的區段返回碼
INT 22H 終止位址
INT 23H Ctrl-Break跳出程式
INT 24H 緊急錯誤處理程式
INT 25H 絕對式讀取磁碟
INT 26H 絕對式寫入磁碟
INT 27H 終止,但留在原處 DX = K數 * 64
INT 28H - INT 3FH 保留未用
| 小恐龍工作坊 提供 |
|---|