<col>
int
ah
功能
調用參數
傳回參數
10
設定顯示方式:
al6~0為顯示模式号,1.al7=0:先清屏,再轉為新模式
2.al7=1:不清屏,直接轉為新模式
al=00 40×25黑白方式
al=01 40×25彩色方式
al=02 80×25黑白方式
al=03 80×25彩色方式
al=04 320×200彩色圖形方式
al=05 320×200黑白圖形方式
al=06 320×200黑白圖形方式
al=07 80×25單色文本方式
al=08 160×200 16色圖形 (pcjr)
al=09 320×200 16色圖形 (pcjr)
al=0a 640×200 16色圖形 (pcjr)
al=0b 保留(ega)
al=0c 保留(ega)
al=0d 320×200 彩色圖形 (ega)
al=0e 640×200 彩色圖形 (ega)
al=0f 640×350 黑白圖形 (ega)
al=10 640×350 彩色圖形 (ega)
al=11 640×480 單色圖形 (ega)
al=12 640×480 16色圖形 (ega)
al=13 320×200 256色圖形 (ega)
al=40 80×30 彩色文本(cge400)
al=41 80×50 彩色文本(cge400)
al=42 640×400 彩色圖形(cge400)
1
設定光标大小
(僅在文本顯示模式下有效)
(ch)0-3=光标起始處行号
(cl)0-3=光标結束處行号
2
設定光标位置
bh=光标所在處的頁号
dh=行号
dl=列号
3
讀光标目前所在位置
bh=頁号
ax = 0000h (phoenix bios)
dh,dl=行,列
ch = 開始掃描行号
cl = 結束掃描行号
4
讀光筆目前所在位置
(适用于ega顯示卡)
ah=0 光筆未打開
=1 光筆已打開,且以下參數有效:
cx=象素行(圖形)
bx=象素列(圖形)
dh=字元行(文本)
dl=字元列(文本)
5
置顯示頁
al=頁号
6
螢幕初始化或向上卷動螢幕
al=上卷行數
al=0 :整個視窗空白
al!=0:螢幕底部為空白輸入行
bh=空白行屬性
ch=左上角行号
cl=左上角列号
dh=右下角行号
dl=右下角列号
7
螢幕初始化或向下卷動螢幕
al=下卷行數
al=0 整個視窗空白
al!=0:螢幕頂部為空白輸入行
8
讀光标位置的字元和屬性
(僅文本顯示模式下有效)
ah=光标所在處字元屬性
al=光标所在處字元編碼
9
在光标位置顯示字元及屬性
al=欲寫字元的編碼
bl=欲寫字元的屬性
cx=字元重複次數
a
在光标位置顯示字元
bh=顯示頁
b
置彩色調闆(320×200圖形)或邊沿色/背景色
(适用于cga顯示卡)
bh=0:文本模式下設定邊沿色,圖形模式下設定背景色,bl=将設定的顔色号;
bh=1:設定調色闆,bl=調色闆号
c
寫象素
(僅在圖形顯示模式下有效)
dx=行(0-199)
cx=列(0-639)
al=點的前景色
d
讀指定頁面指定點的顔色
bx=欲讀點的頁号
al=讀得該點的前景色
e
顯示字元
(光标前移一格,如到頁尾則自動上卷一行,末行空白)
bl=字元的前景色号
f
取目前顯示狀态
ah=目前每行字元數
bh=目前頁号
al6~0=顯示模式号
al7=1:上次轉換未清屏
al7=0:上次轉換前先清屏
13
顯示字元串(适用at)
es:bp=串位址
cx=串長度
dh,dl=起始行,列
al0=0:光标傳回起始位置
al0=1:光标跟随移動
al1=1:包含字元及屬性,此時bl訓示字元屬性
al2~7:保留(0)
(*1*)
11
裝置檢驗
ax=傳回值
bit0=1,配有磁盤
bit1=1,80287協處理器
bit4,5=01,40×25bw(彩色闆)
=10,80×25bw(彩色闆)
=11,80×25bw(黑白闆)
bit6,7=羅盤驅動器
bit9,10,11=rs-232闆号
bit12=遊戲擴充卡
bit13=串行列印機
bit14,15=列印機号
12
測定存儲器容量
ax=位元組數(kb)
磁盤複位
dl=實體驅動器号(0、1:軟碟,80h、81h硬碟)
cf=0:複位成功,此時ah=磁盤狀态
cf=1:複位失敗
讀磁盤狀态
cf=0:讀狀态成功,此時ah=磁盤狀态(*2*)
cf=1:讀狀态失敗
讀扇區狀态
al=扇區數
ch,cl=磁道号,扇區号1-63
dh,dl=磁頭号,驅動器号
es:bx=資料緩沖區位址
cf=0:讀成功,
ah=0
al=已讀取的扇區數
cf=1:讀失敗
ah=出錯代碼
寫指定的扇區
同上
cf=0:寫成功
al=寫入的扇區數
cf=1:寫失敗
檢驗磁盤扇區
同上(es:bx不設定)
cf=0:成功
ah=0
al=檢驗的扇區數
cf=1:失敗
ah=出錯代碼
對指定磁道格式化(硬碟格式化較複雜,這裡隻針對軟碟格式化)
al=每磁道扇區數
ch=磁道号
es:bx=指向扇區id的位址指針
cf=1:失敗,ah=出錯代碼(*3*)
8
取目前驅動器參數
dl=實體驅動器号
ah=0
al:一般為0
bl=驅動器類型(at/ps2 floppy only)
ch=最大磁道号的低8位
cl5~0=扇區号
cl7~6=最大磁道号高2位
dh=最大磁頭号
dl=驅動器數量
es:di指向11個位元組的磁盤參數表的首址指針
9
初始化雙驅動器
cf=0:初始化成功
ah=磁盤狀态
cf=1:初始化失敗
c
查找柱面
cl7~6=磁道号高2位
dh=磁頭号
cf=0:查找成功
cf=1:查找失敗
備用硬碟複位
cf=0:複位成功
10h
檢測硬碟是否準備好
cf=0:準備好
cf=1:未準備好
11h
調整硬碟驅動器
14h
硬碟驅動器内部診斷
15h
取dasd磁盤類型
ah=dasd磁盤類型值(*4*)
16h
取軟碟變化
ah=軟碟狀态值(*5*)
17h
設定磁盤格式化類型
al=磁盤格式化類型(*4*)
18h
設定軟碟媒體類型
ch=磁道數
cl=每磁道扇區數
es:di指向11個位元組的媒體參數表的首址指針
cf=0:設定成功
cf=1:設定失敗
19h
磁頭複位
14
初始化串行通訊口
al=初始化參數
dx=通訊口号(0,1)
ah=通讀口狀态
al=數據機狀态
向串行通訊口寫字元
al=字元
寫成功:(ah)7=0
寫失敗:(ah)7=1
(ah)0-6=通訊口狀态
從串行通訊口讀字元
讀成功:(ah)7=0
(al)=字元
取通訊口狀态
ah=通訊口狀态
15
啟動盒式錄音帶馬達
停止盒式錄音帶馬達
錄音帶分塊讀
es:bx=資料傳輸區位址
cx=位元組數
ah=狀态位元組
ah=00 讀成功
=01 備援檢驗錯
=02 無資料傳輸
=04 無引導
錄音帶分塊寫
ds:bx=資料傳輸區位址
16
從鍵盤讀字元
al=字元ascii碼
ah=字元的掃描碼
讀鍵盤緩沖區字元
zf=0:鍵盤已準備好讀、但鍵盤緩沖區指針并未改變
al=字元ascii碼
ah=掃描碼
zf=1: 鍵盤尚未準備好讀,緩沖區空
讀轉換鍵狀态
al=轉換鍵狀态值(*7*)
ah大多數bios會改變其值
設定按鍵速率和延遲時間
al=設定值
0:預設
1:增加延遲時間
2:按鍵速率減慢一半
3:增加延時且按鍵速率減慢一半
4:關閉重發字元
5:設定按鍵速率與延遲時間
bh=延遲時間
bl=按鍵速率
鍵盤寫(将字元放回緩沖區)
cl=欲寫的字元ascii碼
ch=字元的掃描碼
al=00h:成功
al=01h:緩沖區已滿,操作失敗
讀擴充鍵盤
al=讀得字元的ascii碼
讀取擴充鍵盤狀态
12h
讀取擴充轉換鍵狀态
ah=擴充轉換鍵狀态值(*8*)
17
列印一個字元
回送狀态位元組
al=欲列印字元的ascii碼
dx= 列印機号(0~2)
ah=列印機狀态位元組
ah7=0:列印機忙
ah7=1:列印機空閑
ah6=1:列印機響應
ah5=1:無列印紙
ah4=1:已聯機
ah3=1:出錯
ah2~1:保留
ah0=1:逾時
初始化列印機
dx=列印機号(0~2)
ah=列印機狀态位元組(同上)
取列印機狀态
1a
讀時鐘
ch:cl=時:分
dh:dl=秒:1/100秒
置時鐘
讀實時鐘
ch:cl=時:分(bcd)
dh:dl=秒:1/100秒(bcd)
置報警時間
清除報警
注:
例:
al=0
串:char,char,...
(光标傳回起始位置)
al=1
(光标跟随移動)
al=2,bl=屬性串:char,attr,char,attr,...
al=3,bl=屬性串:char,attr,char,attr,...
(*2*)
values for disk operation status:
00h successful completion
01h invalid function in ah or invalid parameter
02h address mark not found
03h disk write-protected
04h sector not found/read error
05h reset failed (hard disk)
05h data did not verify correctly (ti professional pc)
06h disk changed (floppy)
07h drive parameter activity failed (hard disk)
08h dma overrun
09h data boundary error (attempted dma across 64k boundary or >80h sectors)
0ah bad sector detected (hard disk)
0bh bad track detected (hard disk)
0ch unsupported track or invalid media
0dh invalid number of sectors on format (ps/2 hard disk)
0eh control data address mark detected (hard disk)
0fh dma arbitration level out of range (hard disk)
10h uncorrectable crc or ecc error on read
11h data ecc corrected (hard disk)
20h controller failure
31h no media in drive (ibm/ms int 13 extensions)
32h incorrect drive type stored in cmos (compaq)
40h seek failed
80h timeout (not ready)
aah drive not ready (hard disk)
b0h volume not locked in drive (int 13 extensions)
b1h volume locked in drive (int 13 extensions)
b2h volume not removable (int 13 extensions)
b3h volume in use (int 13 extensions)
b4h lock count exceeded (int 13 extensions)
b5h valid eject request failed (int 13 extensions)
bbh undefined error (hard disk)
cch write fault (hard disk)
e0h status register error (hard disk)
ffh sense operation failed (hard disk)
(*3*)軟碟格式化錯誤資訊
offset size description (table 0212)
00h byte track number
01h byte head number (0-based)
02h byte sector number
03h byte sector size (00h=128 bytes, 01h=256 bytes, 02h=512, 03h=1024)
(*4*)dasd磁盤類型值
00h no such drive 磁盤驅動器不存在
01h floppy without change-line support 磁盤驅動器不能改變目前檢測
02h floppy (or other removable drive) with change-line support 磁盤驅動器能改變目前檢測
03h hard disk 硬碟
(*5*)軟碟狀态值
00h 軟碟無變化
01h invalid command (syquest) 無效的軟碟參數
06h change line active or not supported 軟碟已改變
80h drive not ready or not present 驅動器未準備好
(*6*)磁盤格式化類型
01h = 320/360k disk in 360k drive
02h = 320/360k disk in 1.2m drive
03h = 1.2m disk in 1.2m drive
04h = 720k disk in 720k or 1.44m drive
(*7*)轉換鍵狀态值
bitfields for keyboard shift flags:
bit(s) description (table 0556)
7 insert active
6 capslock active
5 numlock active
4 scrolllock active
3 alt key pressed (either alt on 101/102-key keyboards)
2 ctrl key pressed (either ctrl on 101/102-key keyboards)
1 left shift key pressed
0 right shift key pressed
(*8*)擴充轉換鍵狀态值
bitfields for keyboard shift flags 2:
bit(s) description (table 0562)
7 sysreq key pressed (sysreq is often labeled sysrq)
6 capslock pressed
5 numlock pressed
4 scrolllock pressed
3 right alt key pressed
2 right ctrl key pressed
1 left alt key pressed
0 left ctrl key pressed