ITEEDU

(1)、功能25H

功能描述: 设置中断向量表
入口参数: AH=中断号
DS:DX=中断处理程序的入口地址
出口参数:

功能描述: 取MS-DOS操作系统的版本号
入口参数: AH=30H
出口参数: AL=0——V 1.0;对其它高版本有:AL=主要版本号
AH=次版本号(MS-DOS 3.1=0AH,...)
BH=OEM的序列号(Original Equipment Manufacturer)
BL:CX=24位用户序列号

功能描述: 获得或改变操作系统中断的状态。在功能调用期间,将影响^C的检测
入口参数: AH=33H
AL=00H——取状态
 =01H——设置状态,DL=00/01表示置该状态OFF/ON
出口参数: 取状态时,DL=00/01——分别表示OFF/ON
说明:
 1、若AL中存入其它的功能号,则返回时,AL的值为0FFH;
 2、若置AL为5,则启动驱动器号返回在DL中(1-A,2-B,…)

功能描述: 获得InDos标志的远地址,它由DOS维护表示DOS时活跃的
入口参数: AH=34H
出口参数: ES:BX=InDos标志的远地址
若该单元值为1,表示DOS功能在执行,否则,则不是。

功能描述: 取指定中断号的入口地址
入口参数: AH=35H
AL=中断号
出口参数: ES:BX=中断处理程序的入口地址

功能描述: 读取或设置国家信息
入口参数: AH=38H
当读取国家信息时
DS:DX=存放返回信息的地址
AL=0——取当前国家信息
AL=1~0FEH——取国家代码小于255的国家信息
AL=0FFH——取代码大于等于255的国家信息,BX=国家代码
设置国家信息时
DX=0FFFFH
AL=0~0FEH——设置国家代码小于255的国家信息
AL=0FFH——置代码大于等于255的国家信息,BX=国家代码
出口参数: CF=0——调用成功,BX=国家代码,否则。AX=错误代码(02H),其含义见错误代码表

说明国家信息如下所示:

字节0-1H: 日期格式:0—mdy、1—dmy、2—ymd
字节2-6H: 货币字符
字节7-8H: 数值千位分割符
字节9-0AH: 数值精度分割符
字节0B-0CH: 日期间隔符
字节0D-0EH: 时间间隔符
字节0FH: 货币格式
位0=0——货币符号在前,否则,货币符号在后
位1=0——货币符号和数据之间无空格,否则,二者之间有一个空格
位2=0——货币符号和小数点分开,否则,货币符号代替小数点
字节10H: 货币的小数位数
字节11H: 时间格式。位0=0—12小时制,否则,24小时制
字节12~15H: Case-Map调用地址
字节16~17H: 字符串分割符
字节18~21H: 保留

功能描述: 输入/输出控制,其子功能描述:
 00H—取设备信息 01H—取设备信息
 02H—从字符设备驱动器接受控制数据 03H—发送控制数据到字符设备驱动器
 04H—从块设备驱动器接受控制数据     05H—发送控制数据到块设备驱动器
 06H—检查输入状态 07H—检查输出状态
 08H—检查块设备是否为可拆卸设备 09H—检查设备是否为远程设备
 0AH—检查句柄是否为远程对象 0BH—改变共享访问入口数
 0CH—字符设备的一般I/O控制信息 0DH—块设备的一般I/O控制信息
 0EH—读取逻辑驱动器映射关系 0FH—设置逻辑驱动器映射关系
说明:输入/输出子功能中的00H、06H和07H仅针对文件句柄,子功能00H~ 08H不支持网络设备。

功能描述: 设置程序段前缀(PSP)地址
入口参数: AH=50H
BX=新的PSP地址
出口参数:

功能描述: 读取程序段前缀(PSP)地址
入口参数: AH=51H
出口参数: BX=PSP地址

功能描述: 读取扩展的错误信息
入口参数: AH=59H
BX=00H
出口参数: AX=扩展的错误代码,其含义见错误代码表
BH=错误类型,其定义如下:
01h—资源短缺 02h—处于临时状态而非错误
03h—权限问题 04h—系统软件内部错误
05h—硬件失败 06h—系统软件失败,但不是活跃进程失败
07h—应用程序错 08h—文件或数据项未发现
09h—文件或数据项类型或格式错 0Ah—文件或数据项相互加锁
0Bh—驱动器中坏磁盘,磁盘中坏区域或存储问题
0Ch—其它错误

BL=建议采用的措施,其定义如下:
 01h — 重试若干次后,再选"终止"或"忽略"
 02h — 重试若干次(二次之间要等待)后,再选"终止"或"忽略"
 03h — 从用户获取正确的信息
 04h — 终止应用程序,并清除其所使用资源
 05h — 立即终止程序,但没有清除其资源
 06h — 忽略错误
 07h — 消除错误原因,再重试

CH=错误地点,其定义如下:
 01h — 不知道
 02h — 块设备(磁盘或磁盘模拟器)
 03h — 网络
 04h — 串行设备
 05h — 内存

ES:DI=插入磁盘标签的字符串,若AX=0022h(非法改变磁盘)

功能描述: 读取机器名,读取/设置打印机配置
子功能号 功能描述
00h 读取机器名
02h 设置打印机安装字符串
03h 读取打印机安装字符串
入口参数: AH=5EH
AL=00H
DS:DX=接受字符串缓冲区的地址
出口参数: CF=1——操作失败,AX=错误号(01H),其含义见错误代码表,否则,
CH=00H——机器名未定义,否则,机器名已定义
CL=NetBIOS名称号(当CH≠00H时)
DS:DX=标识符地址(当CH≠00H时)
入口参数: AH=5EH
AL=02H
BX=重定向列表索引
CX=安装字符串的长度
DS:SI=安装字符串的地址
出口参数: CF=0——操作成功,否则,AX=错误号(01H),其含义见错误代码表
入口参数: AH=5EH
AL=03H
BX=重定向列表索引
ES:DI=接受字符串缓冲区的地址
出口参数: CF=0——操作成功,CX=接受字符串的长度,否则,AX=错误号(01H),其含义见错误代码表

功能描述: 设备重定向
子功能号 功能描述
02h 读取重定向列表索引
03h 重定向设备
入口参数: AH=5FH
AL=02H
BX=重定向列表索引
DS:SI=接受本地设备名的16字节存储区地址
ES:DI=接受网络名的128字节存储区地址
出口参数: CF=1——操作失败,AX=错误号(01H或12H),其含义见错误代码表,否则,BH位0=0H——设备合法,否则,设备非法
BL=设备类型——03H:打印机,04H:驱动器
CX=存储参数值
DX=被破坏
BP=被破坏
DS:SI=存放本地设备名的地址
ES:DI=存放网络名的地址
入口参数: AH=5FH
AL=03H
BL=设备类型——03H:打印机,04H:驱动器
CX=调用者保存的参数
DS:SI=本地设备名的16字节存储区地址
ES:DI=网络名的128字节存储区地址,紧跟其后是密码
出口参数: CF=0——操作成功,否则,AX=错误号(01H、03H、05H、08H、0FH或12H),其含义见错误代码表

功能描述: 读取前导字节表
入口参数: AH=63H
AL =子功能
=00H—读取系统前导字节表地址
=01H—设置/清除临时控制台标志(DL=00H/01H—清除/设置标志)
=02H—读取临时控制台标志值
出口参数: BX=1——操作失败,AX=错误号(01H),其含义见错误代码表,否则,调用时,
   若AL=00H,则,DS:SI=系统前导字节表地址;
   若AL=02H,则,DL=临时控制台标志值

功能描述: 读取扩展的国家信息
入口参数: AH=65H
BX=代码页(-1=活跃的CON设备)
CX=接受信息的缓冲区大小
DX=国家标识(-1=缺省)
ES:DI=接受信息的缓冲区地址
AL =子功能
=01H——读取一般的国家信息
=02H——读取指向大写字母表的指针
=04H——读取指向文件名大写字母表的指针
=06H——读取指向校对表的指针
=07H——读取指向DBCS向量的指针
出口参数: CF=0——操作成功,需要的数据存入调用的缓冲区,否则,AX=错误号(02H),其含义见错误代码表

功能描述: 读取/设置代码页
入口参数: AH=66H
AL=子功能号:01H——读取代码页,02H——选择代码页
BX=选择的代码页(当AL=02H)
出口参数: CF=0——操作成功,当调用子功能01H时,BX=活跃的代码页,DX=缺省的代码页,否则,AX=错误号(02H或65H),其含义见错误代码表

功能描述: 设置扩展的错误信息
入口参数: AX=5D0AH
DS:DX=扩展错误结构的地址,该结构的说明如下:
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_ERR ENDS
出口参数: