现在的位置: 首页 > 综合 > 正文

DOS程序员参考手册[15D]

2013年09月21日 ⁄ 综合 ⁄ 共 21890字 ⁄ 字号 评论关闭

432页
代码                          含    义
04h                         未找到数据(仅用于PCjr)
86h                         没有可用的磁带端口
        有些用户使用具有磁带延迟的旧系统,他们往往重新接通用于其它控制
    功能的延迟。使用这一步时必须格外小心,应事先完全弄懂设备的装载以及其
    它的电源要求等情况。
磁带
Int      15h                功能    01h
                            关闭磁带电机
关闭盒式磁带机器的电机。
调用寄存器: AH              01h
返回寄存器:进位标志清除表示成功
                进位标志置位表示出错
                AH          返回代码(参见表15.24)
注释:由于该功能只在较旧的PC型号上运行,因而在PC XT、Personal Com-
puter AT或PS/2系统上使用这一功能,就会导致设置进位标志并返回AH=
86h(参见表15.24)。
      有些用户使用具有磁带延迟功能的旧系统,他们常常要重新接通用于其
它控制功能的延迟。在做这一步之前,事先必须完全弄懂设备的装载情况以及
其它方面的电源要求。
磁带
Int      15h              功能    02h
                          从磁带驱动器中读取数据块
从磁带中读取指定数据目的字节。
调用寄存器: AH              02h
                ES:BX    指向数据缓冲区的指针
                CX          要读取的字节数
返回寄存器:进位标志清除表示成功
                DX          要读取的字节数
                ES:BX    指向跟在所读的最后一个字节之后的那个字节
                            的指针
                进位标志置位表示出错
                AH          返回代码(参见表15.24)
433页
注释:由于该功能只能运行较旧的PC型号上,因而在PC XT、Personal
Computer AT或PS/2系统上使用这一功能时,就会导致进位标志被设置,并
返回AH=86h(参见表15.24)。
      如果正在使用一个带有磁带端口的系统,此功能在从磁带中读入数据时,
以256字节的块为单位进行,但只有用户在CX中指定的字节个数才会被送
到用户的读缓冲区中。
      有些用户使用具有磁带延迟功能的旧系统,他们往往要重新接通用于其
它控制功能的延迟。经过这一步时必须小心,应事先弄懂设备的装载情况及其
它方面的电力要求。
磁带
Int      15h              功能    03h
                          把数据块写给磁带驱动器
    把指定数目的字节写给磁带。
    调用寄存器: AH            03h
                ES:BX      指向数据缓冲区的指针
                CX            要写给的字节数
    返回寄存器:进位标志清除表示成功
                ES:BX      指向紧跟在所写的最后一个字节之后的那个字
                              节的指针
                进位标志置位表示出错
                AH            返回代码(参见表15.24)
    注释:由于该功能只能正常地运行于较旧的PC模型上,因而在PC XT、Per-
    sonal Computer AT或PS/2系统上使用该功能就会导致设置了进位标志并返
    回AH=86h(参见表15.24)。
        对磁带的所有传送都以256字节为一块来进行,但是,只有在CX寄存器
    中所指定数量的字节数才会从数据缓冲区中传送出去。传送期间给出的错误
    指的是命令使用错误,而不是传送错误。如果写一个使用磁带的应用程序,该
    程序就应该提供一种方式,在破坏掉内存中的数据之前,对写入磁带中的内容
    进行校验。
        有些用户使用具有磁带延迟功能旧系统,这样他们就常常要接通用于其
    它控制功能的延迟。在采用这一步骤时应小心从事,且事先必须弄清设备的装
    载情况以及其它方面的电力要求。
磁盘
Int      15h               功能   0Fh
                            ESDI单元格式化的周期性中断
434页
    (PS/2)在格式化每一柱面的末尾,由格式化例程调用此功能。
    调用寄存器: AH            0Fh
                AL            相位代码
                              00h保留
                              01h表面分析
                              02h格式化
    返回寄存器:进位标志置位,终止格式化或扫描
                  进位标志清除,继续格式化或扫描
    注释:在格式化或扫描每个磁盘柱面之后,程序员们可用该功能(注:只能用
    于PS/2机器)来获取对系统的控制权。在这种时候,格式化例程就会调用该
    中断。
        如果从非PS/2系列的机器中调用该功能,系统就会设置进位标志并返
    回AH=80h(对PC和PCjr)或AH=86h(对其它所有的机器)。
PS/2
Int      15h              功能      21h
                          通电自我检测(POST)出错记录
更新或读取POST出错记录。
调用寄存器: AH              21h
              AL             00h,读POST出错记录
                            01h,把出错代码写给POST出错记录
              BX            如果AL=01h则为POST出错码
              BH            设备代码
              BL            设备出错
返回寄存器:如果读取POST出错记录(AL=0)
              进位标志清除表示成功
              AH          00h
              BX            保存的POST出错码数值
              ES:DI       指向POST出错记录的指针
              进位标志置位表示出错
              AH             80h(针对PCjr和PC)
              AH            86h(针对其它所有的机器)
                            如果写POST出错记录(AL=1)
              进位标志清除表示成功
                            AH=00h
              进位标志置位表示出错
              AH=           01h,POST出错记录已满
435页
                    AH          80h(针对PCjr和PC)
                    AH           86h(针对其它所有的机器)
      注释: POST主要是使用该功能来把信息写入内部出错记录或通过诊断例程
    来获取POST操作期间检测出的错误代码的信息。返回什么样的值取决于你
    是传送还是读取该记录。本书的其它章节介绍了POST出错使用细节。
        该功能只能用于PS/2机器上(Model 30除外)。如果从非PS/2的机器中
    调用此功能,就会导致设置进位标志并返回AH=80h(对PC和PCjr)或AH
    =86h(其它的机器,包括PS/2 Model 30)。
键盘
Int      15h                功能   4Fh
                            键盘截取
在I/O处理期间由键盘例程调用。
调用寄存器: AH            4Fh
              AL          键盘扫描码
              进位标志置位
返回寄存器: PC,PCjr
              进位标志置位,AH=80h
              PC XT BIOS 11/08/82,Personal Computer AT
              BIOS1/10/84:
              进位标志置位,AH=86h
              其它所有的机器:
              进位标志置位
              AL          新的键盘扫描码
              进位标志清除
              AL          初始的键盘扫描码
注释:该功能只能用于Personal Computer AT(要求BIOS的发行日期晚于
1/10/84)、PC XT(要求BIOS的发行日期晚于11/8/82)、PC XT Model 286
及ps/2系列的计算机上。可用Int 15h功能C0h来确定该功能是否可用。若
该功能可用,那么每当按上一个键,Int 09h就会在处理这一键击之前,首先调
用该功能。在进位标志置位时,该功能通常经过AL寄存器返回扫描代码。通
过用其它功能来替代该功能,程序员们就能用扫描代码来处理字符转换(正如
可用一个备用的键盘布局来处理一样)。
      若该功能返回的信息为进位标志已清除,Int 09h就会忽略对应的字符。
除了进行字符转换外,替换功能还可用功能4Fh来导致系统忽略某个键击。
436页
系统:
Int      15h              功能      80h
                          设备打开
打开用于某一特定进程的设备。
调用寄存器: AH            80h
              BX          设备ID号
              CX          进程ID号
返回寄存器:进位标志清除表示成功
              进位标志置位表示出错
              AH          80h(针对PC、PCjr)
              AH           86h(针对BIOS日期为11/8/82的PC XT)
注释:该功能只能用于Personal Computer AT、PC XT(BIOS的发行日期晚
于11/8/82)、PC XT Model 286以及PS/2系列计算机。最好将它用于基本的
多任务操作中。具体细节可参见本书的其它章节。
系统
Int      15h                功能    81h
                            设备关闭
关闭与某个特定进程有关的设备。
调用寄存器: AH              81h
              BX            设备ID号
              CX            进程ID号
返回寄存器:进位标志清除表示成功
              进位标志置位表示出错
              AH            80h(针对PC、PCjr)
              AH             86h(针对BIOS日期为11/8/82的PC XT)
注释:该功能只能用于Personal Computer AT、PC XT(BIOS的发行日期晚
于11/8/82)、PC XT Model 286以及PS/2系列计算机。该功能预计用于基本
的多任务操作中。这方面的内容超出了本书的范围。
系统
Int      15h              功能    82h
                          程序终止
    用于终止某个进程,
    调用寄存器: AH            82h
437页
                  BX            进程ID号
    返回寄存器:进位标志清除表示成功
                  进位标志置位表示出错
                  AH            80h(针对PC、PCjr)
                  AH            86h(针对BIOS发行日期为11/8/82的PC
                                XT)
    注释:该功能只能用于Personal Computer AT、PC XT(要求BIOS的发行日
    期晚于11/8/82)、PC XT Model 286以及PS/2系列计算机。它预计用于基本
    的多任务操作中。这方面的内容超出了本书的范围。
系统
Int      15h              功能      83h
                          事件等待
    等待某个进程事件的发生。
    调用寄存器: AH            83h
                AL            00h,设置间隔
                CX:DX      发送前的微秒数
                ES:BX      指向间隔终止后,尽可能快地设置了高顺序位
                              的字节的指针
                AL            01h,取消设置间隔(仅适用于PS/2)
    返回寄存器:进位标志清除表示成功
                进位标志置位表示出错
                AH            80h(针对PC)
                AH             86h(PC XT,要求BIOS的发行日期晚于1/10/
                              84的Personal Computer AT)
    注释:该功能只能用于Personal Computer AT(要求BIOS的发行日期晚于
   1/10/84)以及除Model 30外的PS/2系列计算机上。它预计用于最基本的多
    任务操作中。这方面的内容超出了本书的范围。
游戏
Int      15h                功能    84h
                            操纵杆支持
返回操纵杆的坐标位置和状态。
调用寄存器: AH              84h
                DX           00h,读取转换设置
                            01h,读取操纵杆位置
返回寄存器: PC,PCjr:
438页
                  进位标志置位
                  AH            80h
                  PC XT BIOS11/08/82:
                  进位标志置位
                  AH            86h
                  其它:
                  如果读取转换设置(DX=0)
                  AL            转换(位4-7)
                  进位标志置位表示出错
                  如果读取操纵杆位置(DX=1)
                  AX            A(X)值
                  BX            A(Y)值
                  CX            B(X)值
                  DX            B(Y)值
    注释:除了PC、PCjr和早期的PC XT(BIOS的发行日期为11/08/82)以外,
    可将该功能用于其余所有的IBM计算机上(包括PS/2系列),以控制操纵杆
    的操作。在PC、PCjr和早期的PC XT上,该功能返回进位标志置位以示出错。
    通过AH返回的出错码。要么为80h或者86h(面向PC XT)。
        DX的值用于指示想从操纵杆中获取的信息类型。若DX为0,则该功能
    通过AL中四个具有特殊意义的位来返回转换设置。若DX为1,该功能通过
    四个一般用途的寄存器-AX、BX、CX、和DX来返回操纵杆的位置。若计算
    机上没有附带操纵杆,则返回进位标志置位。
键盘
Int      15h              功能      85h
                          按下请求键
无论何时按下SysRq(系统请求)键都会调用此功能
调用寄存器: AH              85h
返回寄存器: PC,PCjr
              进位标志置位
              AH            80h
              PC XT BIOS11/08/82:
              进位标志置位
              AH            86h
                其它:
              AL            00h,已按键
                            01h,已松开键
439页
    注释:无论何时按下或松开系统请求键(Alt-print Screen),BIOS都会调用此
    功能。只有较近的BIOS版本才支持这一功能,并且只能从带有System Re-
    quest(系统请求)键的键盘访问该功能。
        若计算机的BIOS不支持该功能,那么计算机就会设置进位标志,并返回
    AH=80h或AH=86h(用于早期的PC XT)。
        通常情况下,System Request键返回标志和寄存器集。这些都是没有价值
    的信息,程序能截获此功能以有效地使用该键。要使System Request键按程
    序运行,可简单地重设置向量(revector)Int 15h,并保存旧的地址。此时,程序
    会检查AH中的值。若AH中不含85h,就必须把控制传送给初始化的Int 15h
    处理程序。若AH中含有85h,则表明已按下或松开了System Request键。AL
    反映出了该键的状态:若AL为00h,表明刚刚按下该键,若AL为01h则表明
    刚刚松开此键。
系统
Int      15h                功能    86h
                            延迟
在返回前暂停一定的时间。
调用寄存器: AH              86h
              CX, DX        返回之前按微秒计算的时间(精确到976微秒
                            以内)
返回寄存器: PC,PCjr:
              进位标志置位
              AH           80h
              PX XT:
              进位标志置位
              AH            86h
                其它:
                进位标志置位(进程中的等待)
                进位标志清除(等待成功)
注释:此功能只能用于Personal Computer AT和PS/2系列,其作用是(在操
作系统软件的范围内)设置系统等待。该功能不能用于应用程序。
系统
Int      15h                功能    87h
                            移动块
在80286和80386机器上传送一个指定的内存块。
440页
    调用寄存器: AH          87h
                CX          要移动的存储器的字计数
                ES:SI     指向全局描述符表的指针
    返回寄存器: PC,PCjr:
                进位标志置位
                AH        80h
                PC XT PS/2 Model 30:
                进位标志置位
                AH          86h
                其它:
                进位标志清除,零标志置位
                操作成功
                AH        00h
                进位标志置位,零标志清除
                操作失败
                AH           01h,RAM奇偶校验出错
                            02h,已发生其它异常情况
                            03h, Gate地址线20h失败
    注释:通过这种功能,基于80286或80386微处理器的IBM计算机就能把数
    据块传入和传出内存(必须有1M以上的内存)。计算机可从处理器的实模式
    切换到保护模式。在这种传送操作期间不允许出现任何中断(若移动是大型数
    据块,则可能丢失中断)。
        表15.25介绍的是ES:SI所指向的全局描述符表。
                          表15.25全局描述符表
偏移值                      描    述
00h                         为空;应置为零。
08h                       GDT数据段地址;应置为零
10h                         源GDT。指向用于源内存块的GDT。
18h                         目标GDT。指向用于目标内存块的GDT。
20h                         指向BIOS代码段的指针;应初始化为零。
                          BIOS用这一区域来创建保护模式代码段。
28h                         指向BIOS堆栈段的指针;应初始化为零。
                          BIOS利用这一区域来创建保护模式堆栈段。
441页
源/目标GDT布局
偏移值                    描  述
    00h                         段界限
    02h                          24位的段物理地址
    05h                         数据访问权限(置为39h)
    06h                         保留字(必须为零)
        由于装入CX中的字计数有一个为8000h的上限,因而程序不能传送大
    于64K字节的数据块。
系统
Int      15h                功能    88h
                            确定扩展内存的大小
    返回在扩展内存中可获得连续为1K的内存块的数目。
    调用寄存器: AH          88h
    返回寄存器: PC,PCjr:
                进位标志置位
                AH          80h
                PC XT PS/2Model 30:
                进位标志置位
                      AH                86h
                      其它:
                      AX                从100000h处开始连续为1K内存块数目
    注释:返回已确定的内存数量,这一结果是由POST从地址100000h处开始
    向上检查而得出的。该功能只能用于那些使用80286或者80386微处理器的
    计算机。
系统
Int      15h              功能    89h
                            把处理器切换到保护模式
把处理器切换到保护模式,以便它能访问扩展内存并利用保护模式指令。
调用寄存器: AH            89h
              BL           IRQ0中断向量偏移值
              BH           IRQ8中断向量偏移值
              ES: SI     指向全局描述符表(GDT)的指针
              CX          保护模式中CS要跳转到的偏移值
返回寄存器:进位标志清除表示成功
              进位标志置位表示出错

442页
    注释:那些想通过扩展内存来访问系统的程序员们对把处理器切换到保护模
    式的功能往往具有浓厚的兴趣。虽然保护模式能允许访问附加的内存和指令,
    但为此付出的代价是与许多现有的系统不兼容。只有那些采用286或386处
    理器的机器才具备这一功能(并且它们也不需要额外的内存)。更进一步讲,
    DOS自己并不使用保护模式。因此,若不自己写出用于这种情况下的全部处
    理的程序,那么任何细微的错误都可能会导致系统崩溃。
        要使用这一功能,首先必须为该调用设置全局描述符表(GDT)。(GDT结
    构的具体情况可参见表15.24)
        用户一旦使用了功能89h就不用使用一般的BIOS功能。在保护模式运
    行的程序必须创建出它们自己的I/O命令。更进一步地讲,必须移动标准中断
    向量以适应80386中断定义,该定义普遍地用于为系统的实模式指定的中断
    向量。同时,还必须定义用于硬件中断的中断处理程序。
        若在保护模式下使用这一功能,那么中断处理就是要考虑的主要部分。本
    书的其它章节更详细地介绍了80286/80386中断的情况(但若要了解保护模
    式中断的操作以及如何为它们指派处理程序的具体细节,则必须查阅一本专
    门介绍80286和80386处理器的参考手册。
系统 
Int      15h              功能    90h
                          设备等待
BIOS用此功能来指明一种等待状态。
调用寄存器: AH              90h
              AL            设备类型代码
              ES:BX       等待网络时指向网络控制块的指针
返回寄存器: PC,PCjr:
              进位标志置位
              AH            80h
              PC XT BIOS11/08/82:
              进位标志置位
              AH            86h
              其它方面:
              进位标志置位(已满足最小的等待要求)
              进位标志清除(等待未满足)
注释:可用该功能来通知操作系统:程序正在等待设备。该功能是专门为开发
多任务软件而设计的;这就意味着它不是供开发应用程序的程序员们使用的。
无论BIOS何时进入忙碌循环(当它必须等待设备时),它都会调用该功能。表
15.26列出了可通过AL传送给某个例程的类型代码。
443页
    表15.26通过AL传送的类型代码
    AL                      类型代码
00h                         磁盘超时
01h                         软盘超时
02h                         键盘(未超时)
03h                         指向设备(超时)
80h                         网络(未超时)
FCh                         硬盘复位(仅适用于PS/2)
FDh                         软盘驱动器电机启动(超时)
FEh                         打印机(超时)
          该功能(在中断开始时调用)的作用与Int 15h,功能91h(在中断完成时调
      用)正好相反。若想在计算机正处于忙碌状态处理其它事情,则可连接上Int
      15h向量,该向量会把所有的功能(90h和91h除外)传送给初始化的处理程
      序。保存了机器的状态之后,就可以自由地进行另一项任务的工作。
系统
Int      15h              功能    91h
                          中断完成
BIOS将该功能用来指明等待状态的结束。
调用寄存器: AH              91h
返回寄存器: PC,PCjr:
              进位标志置位
              AH            80h
              PC XT BIOS11/08/82:
              进位标志置位
              AH            86h
              其它:
              AL            类型代码
注释: BIOS使用该功能来报告设备中断已完成,报告的结果通过表15.27中
给出的类型代码来反映。该功能不能由开发应用程序的程序员调用;从根本上
讲,只能将它用于操作系统或用来开发多任务操作系统。设备中断功能用Int
91h来指明它们已完成的操作系统(参见对Int 90h的注释)。
                    表15.27功能91h返回的类型代码
AL                          类型代码
00h                         磁盘超时
01h                         软盘超时
444页
AL                        类型代码
02h                         键盘(未超时)
03h                         指向设备(超时)
80h                         网络(未超时)
FCh                         硬盘复位(仅适用于PS/2)
FDh                         软盘驱动器电机启动(超时)
FEh                         打印机(超时)
      该功能(在中断完成时调用)的作用与Int 15h,功能90h(在中断开始时调
用)相反。
系统
Int      15h              功能    C0h
                          返回系统配置参数
    返回一个指向系统描述符信息的指针。
    调用寄存器:AH           C0h
    返回寄存器: PC, PCjr:
                进位标志置位
                AH          80h
                PC XT BIOS(11/08/82),Personal Computer AT
                BIOS(1/10/84):
                进位标志置位
                AH          86h
                其它:
                ES:BX     在ROM中指向系统描述符的指针
    注释: ROM系统描述符表包含有该系统的有用信息。表15.28显示了各表项
    的含义。
                          表15.28系统描述符表
偏移值                        含义
  00h                       所允许数据的字节计数(最小为8)
    02h                       型号字节
    03h                       子型号字节
    04h                        BIOS版本(00=第一个版本)
    05h                       功能信息(其含义参见表15.29)
    06-09h                   保留
    功能信息字节的具体解释如表15. 29所示。
445页
    表15.29功能信息字节
          位
                                    含    义
76543210
. . . . . . . x                   保留
. . . . . . 0.                    PC总线I/O通道
. . . . . . 1.                    MicroChannel(微通道)结构
. . . . . 1. .                    已分配的扩展BIOS数据区(EBDA)
. . . . 1. . .                    支持对外部事件的等待
. . . 1. . . .                    由Int 09h调用的键盘截获(Int 15h,Function 4Fh)
. . 1. . . . .                    实时时针存在
.1. . . . . .                      第二个中断芯片存在
1. . . . . . .                    硬盘BIOS使用的DMA通道3
        系统描述符表中偏移值02h处所保存的型号字节必须与系统ID字节(保
    存于F000:FFFE处)相同。子模式字节(偏移值03h)可用于其它系统的标
    识。从表15.30所显示的信息中,我们可以确定所使用的是哪种类型的IBM
    计算机(BIOS数据可用来指明同类计算机的表中不同项之间的差别)。
                            表15.30系统号标识
                型号字节        子型号字节    BIOS修订本
计算机类型                                                 BIOS日期
                (偏移值02h)   (偏移值03h)   (偏移值04h)
PC                  FFh
PCXT                FEh
PCXT                FBh                                 00h               01h1/10/86
PCXT                FBh                                 00h               02h5/09/86
PCjr               FDh
AT                  FCh
AT                  FCh                                 00h               01h6/10/85
AT,COMPAQ          286                 FCh             01h               00h11/15/85
PCXT286             FCh                                 02h               00h
PC Convertible      F9h                 00h             00h               09/13/85
PS/1               FCh                 0Bh            05                12/1/89
PS/2Model 30         FAh                 00h             00h               9/2/86
PS/2 Model 50         FCh                 04h             00h
PS/2 Model60       FCh                 05h             00h
PS/2 model80        F8h                00h             00h
系统
Int      15h              功能    C1h
                          返回扩展BIOS数据区(EBDA)的段地址
446页
   <PS/2> 返回EBDA的段地址。
    调用寄存器: AH            C1h
    返回寄存器: PC,PCjr:
                进位标志置位
                AH            80h
                PCXT,Personal Computer AT:
                进位标志置位
                AH            86h
                PS/2:
                进位标志清除表成功
                ES            扩展BIOS数据区段地址
                进位标志置位表示出错
注释:该功能可用来确定扩展BIOS数据区(EBDA)的段地址。值得注意的是
这一区域仅由PS/2系列使用(到目前为止)。通过Int 15h,功能C0h(参照功
能信息字节中的位2),可确定系统是否支持这种数据区。
        在Personal System/2系列上, EBDA由BIOS内在地使用。 EBDA由
POST例程进行分配,并且它常驻在用户内存区域的顶部(通常为640K主内
存区中最后1K的内存)。POST还可调整允许用于EBDA的自由内存。要确
定可用的自由内存总量,可参照Int 12h的信息。
系统
Int      15h                功能    C2h
                            指向设备BIOS接口
    <PS/2> 用于辅助指向设备的接口功能。
    调用寄存器: AH          C2h
                AL           00h,允许/禁止指向设备
                BH           00h,允许
                            01h,禁止
                AL           01h,重新设置指向设备
                AL          02h,设置抽样频率
                AL          03h,设置分辨率
                AL         04h,读取设备类型
                AL          05h,指向设备接口初始化
                AL           06h,扩展命令
                AL           07h,指向设备远调用初始化
    返回寄存器: PC,PCjr:
                进位标志置位
447页
                    AH            80h
                    PCXT,Personal Computer AT:
                    进位标志置位
                    AH            86h
                    PS/2:
                    进位标志清除表示成功
              其它寄存器依据子功能的不同而改变(参见注释)
              进位标志置位表示出错
              AH           01h,非法的功能调用
                          02h,无效输入
                          03h,接口出错
                          04h,重新发送
                          05h,没有安装远程调用
    注释:该功能(只能用于PS/2系列)是专为DOS的接口指向设备(如鼠标、数
    字化仪、轫迹球等)而设计的。由于大多数鼠标软件是通过Int 33h设备驱动程
    序而进行接口连接的,因而有关鼠标的信息可在对该中断的介绍中找到(Mi-
    crosoft已推出了Int 33h设备驱动程序的更新版本,该版本在可能的条件下,
    使用这种BIOS中断来实现它自身的功能,但是,在大多数情况下,程序都是
    在使用Int 33h接口,因而这一接口已形成了一种标准)。
        虽然本书的其它章节详细地介绍了该功能的使用方法,但在此只是粗略
    地提一下每个子功能的参数。在调用子功能之前,必须将指向设备中断处理程
    序的有关信息,通知给BIOS(把AL置为7并且让ES:BX指向该中断处理
    程序的远地址)。接着,把AL和BH置为0并调用该功能,即可启用指向设
    备。
        启用了指向设备之后,通过将AL置为1并调用此功能,使其复位。当该
    操作获得成功之后,把BH设置为指向设备的设备ID号,便可重新设置该设
    备的参数。
        注意:这里是用类似的子功能(AL=5)来初始化指向设备的接口。通过把
    BH设置1-8范围中的任何一个数字,便可调用对应的子功能,其中,数字1
    至8代表数据包含所占用的字节数。
        要允许设置指向设备的抽样频率,可把AL置为2。装载在BH中所期望
    的抽样率是通过代码来表示的,具体见下表。
代码                抽样速率
    00h               每秒10次报告
    01h               每秒20次报告
    02h               每秒40次报告
  03h               每秒60次报告
04h               每秒80次报告
05h               每秒100次报告
06h               每秒200次报告
448页
      要设置指向设备的分辨率,可把AL置为3,并把BH设置为所期望的分
辨率(0=每毫秒计数1次(cpm;1=2cpm;2=4cpm;3=8cpm)。
      把AL置为4,便可读取设备ID号(通过BH返回)。这一返回值与重新设
置该设备(参见AL=5)时所返回的值是一样的。
系统
Int      15h                功能    C3h
                            允许/禁止监视器超时
    <PS/2> 为PS/2监视器计时器提供控制。
    调用寄存器: AH          C3h
                AL           00h,禁止监视器超时
                            01h,允许监视器超时
                BX          监视器的计时器计数(1-255)
    返回寄存器: PC,PCjr:
                进位标志置位
                AH          80h
                PC XT, Personal Computer AT, PS/2 Model30:
                进位标志置位
                AH          86h
                      PS/2:
                进位标志清除表示成功
                进位标志置位表示出错
注释:该功能只能用于使用80286或80386微处理器的PS/2系列计算机上,
其作用是禁止/允许监示器计时器计时。在非PS/2的计算机上,该功能返回
进位标志置位状态并在AH中返回出错码。
      监视器计时器使用计时器通道3,并且接通了IRQ0线。每当IRQ0活动
的时间超过通道0计时器(主系统计时器)的一次循环时间,监视器计时器的
计数也就相应地减少1次。当监视器的计时器计数减少到0时,便产生一次不
可屏蔽的中断(NMI)。该功能(以及监视器计时器)的主要用途是帮助检测错
误,并从错误中恢复正常。
系统
Int      15h                功能  C4h
                            可编程的选项选择
<PS/2> 通过选项板提供对PS/2系统可编程寄存器的访问。
调用寄存器: AH          C4h
              AL         00h,返回基本的POS接口卡寄存器地址
449页
                            01h,允许用于装置的插槽
                            02h,接口卡允许
返回寄存器: PC,PCjr:
              进位标志置位
              AH            80h
              PCXT,Personal ComputerAT,PS/2 Mode 30:
              进位标志置位
              AH            86h
              PS/2:
              进位标志清除表示成功
              DL            基本的POS接口卡寄存器地址(功能0
              BL            插槽号(功能1)
              进位标志置位表示出错
注释: Programmable Option Select(可编程的选项选择:POS)可用于那些使
用80286或80386微处理器的PS/2计算机上,其作用是消除对系统板和接口
切换的需求。切换功能由可编程的寄存器替换,而可编程的寄存器则可通过该
功能进行访问。
      在非PS/2系统上,该功能返回错误。此时,进位标志置位,并且AH中包
含的也是出错码。
      从根本上讲,该功能主要用于系统配置软件,而不能由应用程序使用。如
果打算使用该功能,则应小心;不正确地使用POS会导致系统失去其完整性,
并可能毁坏一些接口卡板,关于PS/2的配置和建立过程的讨论超出了本书
的范围。
系统
Int      15h        功能    D8h     子功能00h
                    读取EISA插槽信息
在EISA系统上,返回指定插槽中某个EISA设备的有关信息。
调用寄存器: AH              D8h
                AL          读取插槽信息
                CL          插槽号(0-63)
返回寄存器:进位标志清除表示成功
                AH           00h,成功
                AL          销售厂商信息字节
                BH          主再版号
                BL          次再版号
                CX          配置文件的检查和
450页
                  DH            设备功能号
                  DL            综合功能信息
                  SI:DI        4字节的销售厂商ID号
                    进位标志置位表示出错
                    AH           80h,无效插槽号
                                82h,扩展CMOS被破坏
                                83h,插槽为空
                                86h,非法的BIOS调用
                                87h,非法的系统配置
      注释: EISA总线计算机是在ISA总线计算机基础上的扩展,也可用它来替
      代几年前由IBM推出的MCA总线的计算机。该功能供EISA配置例程使用。
      它允许读取指定扩展插槽中某个设备的信息。若使用这一例程的程序在32位
      的模式(CS为32位)中运行,那么在调用该功能时,必须把AH的值置为
      80h。
          该功能主要是供系统配置软件使用的,而不是供应用程序使用。关于
      EISA系统配置和建立过程的讨论超出了本书的范围。
系统
Int      15h            功能    D8h   子功能01h
                        读取EISA功能信息
在EISA系统上,返回指定插槽中某个设备专用的EISA功能的信息。
调用寄存器: AH          D8h
            AL           01h,读取功能信息
            CH          功能号
            BL          插槽号(0-63)
            DS:SI      320个字节的缓冲区地址
返回寄存器:进位标志清除表示成功
            AH           00h,成功
            进位标志置位表示出错
            AH           80h,无效插槽号
                        81h,无效功能号
                        82h,已产生讹误的扩展CMOS RAM
                        83h,插槽为空
                        86h,非法的BIOS调用
                        87h,非法的系统配置
注释: EISA总线计算机是在ISA总线计算机基础上的扩展,也是几年前由
IBM推出的MCA总线的计算机的替代品。该功能供EISA配置例程使用。它
451页
允许读取指定扩展插槽中某个设备的信息。该信息通过由DS:SI所指向的
320个字节的数据块返回。如果使用此例程的程序在32位模式(CS为32位)
下运行,那么在调用此功能时,应该把AH的值置为81h,并且DS:ESI必须
指向数据缓冲区。
    该功能主要是为系统配置软件而设计的,因而应用程序无法使用它。有关
EISA系统配置及建立过程的讨论超出了本书的范围。
系统
Int      15h            功能      D8h   子功能02h
                          清除EISA COMS
在EISA系统上初始化CMOS RAM。
调用寄存器: AH              D8h
              AL            02h,清除COMS
              BH            主版本号
              BL            次版本号
返回寄存器:进位标志清除表示成功
              AH            00h,成功
              进位标志置位表示出错
              AH             84h,写入CMOS时出错
                            86h,非法的BIOS调用
                            88h,不支持配置实用程序
注释: EISA总线计算机是在ISA总线计算机基础上的扩展,并且可用替代
几年前由IBM推出的MCA总线的计算机。该功能供EISA配置例程使用。它
允许清除扩展的COMS区域,但前提是系统必须支持由保存在BX中的版本
号,指定的配置实用程序。如果使用配置实用程序的主程序在32位模式(CS
为32位)中运行,那么在调用此功能时,应该把AH的值置为82h。
      该功能主要是供系统配置程序而设计的,应用程序不能使用它。关于
EISA系统配置及建立过程的讨论超出了本书的范围。
系统
Int      15h              功能    D8h     子功能03h
                          写EISACOMS
在EISA系统上,把信息块写入COMS RAM。
调用寄存器: AH            D8h
              AL          03h,写给CMOS
              CX          数据长度
              DS:SI     数据缓冲区的地址
 

抱歉!评论已关闭.