系統(tǒng)功能(SystemFunction)

字號(hào):

25H —設(shè)置中斷向量
    30H —讀取MS-DOS版本號(hào)
    33H —讀取/設(shè)置Break標(biāo)志
    34H —讀取InDOS標(biāo)志的地址
    35H —讀取中斷向量
    38H —讀取/設(shè)置國(guó)家信息
    44H —IOCTL(I/O控制)
    50H —設(shè)置程序段前綴(PSP)地址
    51H —讀取程序段前綴(PSP)地址
    59H —讀取擴(kuò)展的錯(cuò)誤信息
    5EH —讀取機(jī)器名,讀取/設(shè)置打印機(jī)配置
    5FH —設(shè)備重定向
    63H —讀取前導(dǎo)字節(jié)表
    65H —讀取擴(kuò)展的國(guó)家信息
    66H —讀取/設(shè)置代碼頁(yè)
    5D0AH —設(shè)置擴(kuò)展的錯(cuò)誤信息
    (1)、功能25H
    功能描述:設(shè)置中斷向量表
    入口參數(shù):AH=中斷號(hào)
    DS:DX=中斷處理程序的入口地址
    出口參數(shù):無(wú)
    (2)、功能30H
    功能描述:取MS-DOS操作系統(tǒng)的版本號(hào)
    入口參數(shù):AH=30H
    出口參數(shù):AL=0——V 1.0;對(duì)其它高版本有:AL=主要版本號(hào)
    AH=次版本號(hào)(MS-DOS 3.1=0AH,...)
    BH=OEM的序列號(hào)(Original Equipment Manufacturer)
    BL:CX=24位用戶序列號(hào)
    (3)、功能33H
    功能描述:獲得或改變操作系統(tǒng)中斷的狀態(tài)。在功能調(diào)用期間,將影響^C的檢測(cè)
    入口參數(shù):AH=33H
    AL=00H——取狀態(tài)
    =01H——設(shè)置狀態(tài),DL=00/01表示置該狀態(tài)OFF/ON
    出口參數(shù):取狀態(tài)時(shí),DL=00/01——分別表示OFF/ON
    說(shuō)明:
    1、若AL中存入其它的功能號(hào),則返回時(shí),AL的值為0FFH;
    2、若置AL為5,則啟動(dòng)驅(qū)動(dòng)器號(hào)返回在DL中(1-A,2-B,…)
    (4)、功能34H
    功能描述:獲得InDos標(biāo)志的遠(yuǎn)地址,它由DOS維護(hù)表示DOS時(shí)活躍的
    入口參數(shù):AH=34H
    出口參數(shù):ES:BX=InDos標(biāo)志的遠(yuǎn)地址
    若該單元值為1,表示DOS功能在執(zhí)行,否則,則不是。
    (5)、功能35H
    功能描述:取指定中斷號(hào)的入口地址
    入口參數(shù):AH=35H
    AL=中斷號(hào)
    出口參數(shù):ES:BX=中斷處理程序的入口地址
    (6)、功能38H
    功能描述:讀取或設(shè)置國(guó)家信息
    入口參數(shù):AH=38H 當(dāng)讀取國(guó)家信息時(shí)
    DS:DX=存放返回信息的地址
    AL=0——取當(dāng)前國(guó)家信息
    AL=1~0FEH——取國(guó)家代碼小于255的國(guó)家信息
    AL=0FFH——取代碼大于等于255的國(guó)家信息,BX=國(guó)家代碼
    設(shè)置國(guó)家信息時(shí)
    DX=0FFFFH
    AL=0~0FEH——設(shè)置國(guó)家代碼小于255的國(guó)家信息
    AL=0FFH——置代碼大于等于255的國(guó)家信息,BX=國(guó)家代碼
    出口參數(shù):CF=0——調(diào)用成功,BX=國(guó)家代碼,否則。AX=錯(cuò)誤代碼(02H),其含義見錯(cuò)誤代碼表 說(shuō)明國(guó)家信息如下所示:
    字節(jié)0-1H:日期格式:0—mdy、1—dmy、2—ymd
    字節(jié)2-6H:貨幣字符
    字節(jié)7-8H:數(shù)值千位分割符
    字節(jié)9-0AH:數(shù)值精度分割符
    字節(jié)0B-0CH:日期間隔符
    字節(jié)0D-0EH:時(shí)間間隔符
    字節(jié)0FH:貨幣格式
    位0=0——貨幣符號(hào)在前,否則,貨幣符號(hào)在后
    位1=0——貨幣符號(hào)和數(shù)據(jù)之間無(wú)空格,否則,二者之間有一個(gè)空格
    位2=0——貨幣符號(hào)和小數(shù)點(diǎn)分開,否則,貨幣符號(hào)代替小數(shù)點(diǎn)
    字節(jié)10H:貨幣的小數(shù)位數(shù)
    字節(jié)11H:時(shí)間格式。位0=0—12小時(shí)制,否則,24小時(shí)制
    字節(jié)12~15H:Case-Map調(diào)用地址
    字節(jié)16~17H:字符串分割符
    字節(jié)18~21H:保留
    (7)、功能44H
    功能描述:輸入/輸出控制,其子功能描述:
    00H—取設(shè)備信息01H—取設(shè)備信息
    02H—從字符設(shè)備驅(qū)動(dòng)器接受控制數(shù)據(jù)03H—發(fā)送控制數(shù)據(jù)到字符設(shè)備驅(qū)動(dòng)04H—從塊設(shè)備驅(qū)動(dòng)器接受控制數(shù)據(jù) 05H—發(fā)送控制數(shù)據(jù)到塊設(shè)備驅(qū)動(dòng)器
    06H—檢查輸入狀態(tài)07H—檢查輸出狀態(tài)
    08H—檢查塊設(shè)備是否為可拆卸設(shè)備09H—檢查設(shè)備是否為遠(yuǎn)程設(shè)備
    0AH—檢查句柄是否為遠(yuǎn)程對(duì)象0BH—改變共享訪問(wèn)入口數(shù)
    0CH—字符設(shè)備的一般I/O控制信息0DH—塊設(shè)備的一般I/O控制信息
    0EH—讀取邏輯驅(qū)動(dòng)器映射關(guān)系0FH—設(shè)置邏輯驅(qū)動(dòng)器映射關(guān)系
    說(shuō)明:輸入/輸出子功能中的00H、06H和07H僅針對(duì)文件句柄,子功能00H~ 08H不支持網(wǎng)絡(luò)設(shè)備。
    (8)、功能50H
    功能描述:設(shè)置程序段前綴(PSP)地址
    入口參數(shù):AH=50H
    BX=新的PSP地址
    出口參數(shù):無(wú)
    (9)、功能51H
    功能描述:讀取程序段前綴(PSP)地址
    入口參數(shù):AH=51H
    出口參數(shù):BX=PSP地址
    (10)、功能59H
    功能描述:讀取擴(kuò)展的錯(cuò)誤信息
    入口參數(shù):AH=59H
    BX=00H
    出口參數(shù):AX=擴(kuò)展的錯(cuò)誤代碼,其含義見錯(cuò)誤代碼表
    BH=錯(cuò)誤類型,其定義如下: 01h—資源短缺02h—處于臨時(shí)狀態(tài)而非錯(cuò)誤
    03h—權(quán)限問(wèn)題04h—系統(tǒng)軟件內(nèi)部錯(cuò)誤
    05h—硬件失敗06h—系統(tǒng)軟件失敗,但不是活躍進(jìn)程失敗
    07h—應(yīng)用程序錯(cuò)08h—文件或數(shù)據(jù)項(xiàng)未發(fā)現(xiàn)
    09h—文件或數(shù)據(jù)項(xiàng)類型或格式錯(cuò)0Ah—文件或數(shù)據(jù)項(xiàng)相互加鎖
    0Bh—驅(qū)動(dòng)器中壞磁盤,磁盤中壞區(qū)域或存儲(chǔ)問(wèn)題
    0Ch—其它錯(cuò)誤
    BL=建議采用的措施,其定義如下:
    01h — 重試若干次后,再選"終止"或"忽略"
    02h — 重試若干次(二次之間要等待)后,再選"終止"或"忽略"
    03h — 從用戶獲取正確的信息
    04h — 終止應(yīng)用程序,并清除其所使用資源
    05h — 立即終止程序,但沒(méi)有清除其資源
    06h — 忽略錯(cuò)誤
    07h — 消除錯(cuò)誤原因,再重試
    CH=錯(cuò)誤地點(diǎn),其定義如下:
    01h — 不知道
    02h — 塊設(shè)備(磁盤或磁盤模擬器)
    03h — 網(wǎng)絡(luò)
    04h — 串行設(shè)備
    05h — 內(nèi)存
    ES:DI=插入磁盤標(biāo)簽的字符串,若AX=0022h(非法改變磁盤)
    (11)、功能5EH
    功能描述:讀取機(jī)器名,讀取/設(shè)置打印機(jī)配置 子功能號(hào)功能描述
    00h讀取機(jī)器名
    02h設(shè)置打印機(jī)安裝字符串
    03h讀取打印機(jī)安裝字符串
    ①、子功能1
    入口參數(shù):AH=5EH
    AL=00H
    DS:DX=接受字符串緩沖區(qū)的地址
    出口參數(shù):CF=1——操作失敗,AX=錯(cuò)誤號(hào)(01H),其含義見錯(cuò)誤代碼表,否則,
    CH=00H——機(jī)器名未定義,否則,機(jī)器名已定義
    CL=NetBIOS名稱號(hào)(當(dāng)CH≠00H時(shí))
    DS:DX=標(biāo)識(shí)符地址(當(dāng)CH≠00H時(shí))
    ②、子功能2
    入口參數(shù):AH=5EH
    AL=02H
    BX=重定向列表索引
    CX=安裝字符串的長(zhǎng)度
    DS:SI=安裝字符串的地址
    出口參數(shù):CF=0——操作成功,否則,AX=錯(cuò)誤號(hào)(01H),其含義見錯(cuò)誤代碼表
    ③、子功能3
    入口參數(shù):AH=5EH
    AL=03H
    BX=重定向列表索引
    ES:DI=接受字符串緩沖區(qū)的地址
    出口參數(shù):CF=0——操作成功,CX=接受字符串的長(zhǎng)度,否則,AX=錯(cuò)誤號(hào)(01H),其含義見錯(cuò)誤代碼表
    (12)、功能5FH
    功能描述:設(shè)備重定向 子功能號(hào)功能描述
    02h讀取重定向列表索引
    03h重定向設(shè)備
    ①、子功能1
    入口參數(shù):AH=5FH
    AL=02H
    BX=重定向列表索引 入口參數(shù):AH=5FH
    AL=03H
    BL=設(shè)備類型——03H:打印機(jī),04H:驅(qū)動(dòng)器
    CX=調(diào)用者保存的參數(shù)
    DS:SI=本地設(shè)備名的16字節(jié)存儲(chǔ)區(qū)地址
    ES:DI=網(wǎng)絡(luò)名的128字節(jié)存儲(chǔ)區(qū)地址,緊跟其后是密碼
    出口參數(shù):CF=0——操作成功,否則,AX=錯(cuò)誤號(hào)(01H、03H、05H、08H、0FH或12H),其含義見錯(cuò)誤代碼表
    (13)、功能63H
    功能描述:讀取前導(dǎo)字節(jié)表
    入口參數(shù):AH=63H AL=子功能
    =00H—讀取系統(tǒng)前導(dǎo)字節(jié)表地址
    =01H—設(shè)置/清除臨時(shí)控制臺(tái)標(biāo)志(DL=00H/01H—清除/設(shè)置標(biāo)志)
    =02H—讀取臨時(shí)控制臺(tái)標(biāo)志值
    出口參數(shù):BX=1——操作失敗,AX=錯(cuò)誤號(hào)(01H),其含義見錯(cuò)誤代碼表,否則,調(diào)用時(shí),
    若AL=00H,則,DS:SI=系統(tǒng)前導(dǎo)字節(jié)表地址;
    若AL=02H,則,DL=臨時(shí)控制臺(tái)標(biāo)志值
    (14)、功能65H
    功能描述:讀取擴(kuò)展的國(guó)家信息
    入口參數(shù):AH=65H
    BX=代碼頁(yè)(-1=活躍的CON設(shè)備)
    CX=接受信息的緩沖區(qū)大小
    DX=國(guó)家標(biāo)識(shí)(-1=缺省)
    ES:DI=接受信息的緩沖區(qū)地址 AL=子功能
    =01H——讀取一般的國(guó)家信息
    =02H——讀取指向大寫字母表的指針
    =04H——讀取指向文件名大寫字母表的指針
    =06H——讀取指向校對(duì)表的指針
    =07H——讀取指向DBCS向量的指針
    出口參數(shù):CF=0——操作成功,需要的數(shù)據(jù)存入調(diào)用的緩沖區(qū),否則,AX=錯(cuò)誤號(hào)(02H),其含義見錯(cuò)誤代碼表
    (15)、功能66H
    功能描述:讀取/設(shè)置代碼頁(yè)
    入口參數(shù):AH=66H
    AL=子功能號(hào):01H——讀取代碼頁(yè),02H——選擇代碼頁(yè)
    BX=選擇的代碼頁(yè)(當(dāng)AL=02H)
    出口參數(shù):CF=0——操作成功,當(dāng)調(diào)用子功能01H時(shí),BX=活躍的代碼頁(yè),DX=缺省的代碼頁(yè),否則,AX=錯(cuò)誤號(hào)(02H或65H),其含義見錯(cuò)誤代碼表
    (16)、功能5D0AH
    功能描述:設(shè)置擴(kuò)展的錯(cuò)誤信息
    入口參數(shù):AX=5D0AH
    DS:DX=擴(kuò)展錯(cuò)誤結(jié)構(gòu)的地址,該結(jié)構(gòu)的說(shuō)明如下: EXTEND_ERR STRUCT
    RAx WORD ? ;AX
    RBx WORD ? ;BX
    RCx WORD ? ; CX
    RDx WORD ? ; DX
    RSi WORD ? ; SI
    RDi WORD ? ; DI
    RDs WORD ? ; DS
    REs WORD ? ; ES
    Pad WORD 3 DUP(0)
    EXTEND_ERRENDS
    出口參數(shù):無(wú)