BIOS 中断描述(1)

1. 中断服务: 10H 视频服务

1.1 服务号: 0 设置视频模式

  • 输入:
    1. AH: 0
    2. AL: 模式
  • 输出: 无
  • 影响寄存器:AX, SP, BP, SI, DI

模式设置表

模式 显示行数 颜色数 适配器
0 40 x 25 Black & White text CGA, EGA, VGA
1 40 x 25 Color text CGA, EGA, VGA
2 80 x 25 Black & White text CGA, EGA, VGA
3 80 x 25 Color text CGA, EGA, VGA
4 320 x 200 4 CGA, EGA, VGA
5 320 x 200 Black & White CGA, EGA, VGA
6 640 x 200 2 (on or off) CGA, EGA, VGA
7 80 x 25 Monochrome MDA, EGA, VGA
8 160 x 200 16 PCjr
9 320 x 200 16 PCjr
A 640 x 200 1 PCjr
B Reserved for future use
C Reserved for future use
D 320 x 200 16 EGA, VGA
E 640 x 200 16 EGA, VGA
F 640 x 350 Monochrome EGA, VGA
10H 640 x 350 16 EGA, VGA
11H 640 x 480 2 VGA
12H 640 x 480 16 VGA
13H 320 x 200 256 VGA

CGA - Color Graphics Adapter 彩色图形适配器

EGA - Enhanced Graphics Adapter 增强图形适配器

VGA - Video Graphics Array 视频图形阵列

MDA - Monochrome Display Adapter 单色字符显示适配器

PCjr - IBM PC junio 缩写,是IBM公司于1984年推出的一款面向家庭和学校市场的低端个人电脑产品

PC convertible - IBM推出了首台笔记本电脑

当模式修改了,屏幕会清空。但不要用这个服务当做清空屏幕服务,因为这个操作比正常的屏幕清空服务(06H或者07H服务)时间要长。为了避免屏幕清空(仅支持 PCjr, EGA, and PC convertible)可以把AL的高位置1(bit 7= 1)

图形模式不显示光标。修改视频模式同时也会修改光标尺寸。

对于PCjr, CGA和EGA模式0,2,5 和模式1,3,4一样除了Color burst是禁用。("Color burst" 控制是否在显示器显示颜色:当Color burst打开,显示颜色,当关闭,颜色不显示。RGB不被Color burst状态影响

Function updates byte at 40:49. Bit 7 of byte 40:87 (EGA/VGA display data area) is set to the value of AL bit 7.

例子:

mov al, 13h
mov ah, 0
int 10h

1.2 服务号: 1 设置光标尺寸

通过设置光标的开始和结束行来调整光标尺寸。

  • 输入:
    1. AH = 1
    2. CH = 光标开始行(bits 4-0) 选项(bits 5-7)
    3. CL = 光标结束行(bits 4-0)
    • 说明:当CH的bit 5=0 光标可见,bit 5=1 光标不可见。
  • 输出: 无
  • 影响寄存器: AX, SP, BP, SI, DI

例子:

; 隐藏文本光标闪烁:
mov ch, 32 ; 0010 0000
mov ah, 1
int 10h

; 显示标准的文本闪烁光标:
mov ch, 6 ;0000 0110
mov cl, 7 ;0000 0111
mov ah, 1
int 10h

; 显示盒状闪烁光标:
mov ch, 0 ;0000 0000
mov cl, 7 ;0000 0111
mov ah, 1
int 10h

; 备注:一些bios需要CL 设置 >= 7,
; 否则就不能正常显示光标形状

1.3 服务号: 2 设置光标位置

为指定的显示页设置光标位置。

  • 输入:
    1. AH = 02h
    2. BH = 显示页页号
    3. DH = 行号
    4. DL = 列号
  • 输出: 无
  • 影响寄存器: AX, SP, BP, SI, DI

这个服务可以设置活跃页面或者非活跃页面的光标位置。

在图形模式,这个服务设置光标逻辑位置,尽管光标本身不显示(在图形模式不显示光标)。

要让光标不可见,可把它位置调整到第25行。

显示的左上角是DH = 0h, DL = 0h,当右下角是DH = 18h (24), DL = 27h (39)是40行模式或者DL = 4Fh (79)是80行模式。

服务05h可以看不同显示模式的合法页码列表。因为这个服务不去检查,所以如果你指定了非法的页码会出现不确定的结果。图形模式的页码是0。

1.4 服务号: 3 读取光标位置和尺寸

报告指定显示页光标位置(行号和列号)和尺寸。

  • 输入:
    1. AH = 03h
    2. BH = 显示页页码
  • 输出:
    1. CH = 光标开始行号
    2. CL = 光标结束行号
    3. DH = 行号
    4. DL = 列号
  • 影响寄存器: AX, SP, BP, SI, DI

1.5 服务号: 4 读取光笔位置

报告光笔位置和状态。

  • 输入:
    1. AH = 04h
  • 输出:
    1. AH = 状态 (0 = 未触发, 1 = 已触发)
    2. BX = 像素列号(0-639)
    3. CH = 像素线号(0-199)
    4. CX = 模式0fh-10h时像素线号(0-nnn)
    5. DH = 字符行号(0-24)
    6. DL = 字符列号(0-39 或者 0-79)
  • 影响寄存器: AX, SP, BP, SI, DI

位置报告有两种形式:字符模式位置(行在DH,列在DL)和像素位置(激光线在CH,列/点 在BX)。

像素坐标对于光笔位置是不精确的。y坐标始终是2的倍数,同时x坐标是4的倍数在320 x 200模式下,是8的倍数在640 x 200图形模式下。

1.6 服务号: 5 设置活跃显示页

设置活跃显示页。

  • 输入:
    1. AH = 05h
    2. AL = 显示页页号
  • 输出:无
  • 影响寄存器:AX, SP, BP, SI, DI
视频模式 合法页面
00h 0-7
01h 0-7
02h 0-3
03h 0-3
04h 0
05h 0
06h 0
07h 0
08h 0
09h 0
0ah 0
0dh 0-7
0eh 0-3
0fh 0-1
10h 0-1

1.7 服务号: 6 向上滚动窗口

把指定窗口向上滚动指定行数

  • 输入:
    1. AH = 06h
    2. AL = 滚动行数(如果是0, 清空整个窗口)
    3. BH = 空行的显示属性
    4. CH = 左上角行号
    5. CL = 左上角列号
    6. DH = 右下角行号
    7. DL = 右下角列号
  • 输出:无
  • 影响寄存器:AX, SP, BP, SI, DI

当所有行向上移动,线会插入到底部。新线会填充指定显示属性的空字符(在BH)。窗口顶部的线会消失。

如果滚动行数指定为0,整个窗口填充空字符。用服务 07H 可以向下滚动窗口。

这个服务只影响活动显示页。

1.8 服务号: 7 向下滚动窗口

将指定窗口向下滚动指定行数。

  • 输入:
    1. AH = 07h
    2. AL = 要滚动的行数(如果为 0,则清除整个窗口)
    3. BH = 空行的显示属性
    4. CH = 左上角的行号
    5. CL = 左上角的列号
    6. DH = 右下角的行号
    7. DL = 右下角的列号
  • 输出:无
  • 影响寄存器:AX, SP, BP, SI, DI

行插入顶部,所有行都向下移动。新行用指定显示属性的空白字符(BH中的值)填充在窗口底部消失的行会丢失。

如果要滚动的行数指定为 0,则整个窗口都被空白填充。使用服务06h向上滚动窗口。

此服务仅影响当前活动的显示页面。

1.9 服务号: 8 读取光标处的字符和属性

报告指定显示页面的当前光标位置处字符的 ASCII 值和(在文本模式下)属性。

  • 输入:
    1. AH = 08h
    2. BH = 显示页码(仅限文本模式)
  • 输出:
    1. AH = 字符的属性(文本模式)
    2. AL = 字符的 ASCII 值
  • 影响寄存器:AX, SP, BP, SI, DI

在图形模式下,不需要指定显示页面。

可以获取任何页面的当前字符和属性,即使该页面不是当前活动页面。

在图形模式下,如果服务无法识别字符模式,则在AL中返回00h。

使用服务09h写入具有指定属性的字符。

1.10 服务号: 9 在光标处写入字符和属性

显示具有指定属性的指定字符指定次数。

  • 输入:
    1. AX = 09h
    2. AL = 字符的ASCII值
    3. BH = 显示页面(仅限文本模式)
    4. BL = 属性/颜色
    5. CX = 写字次数
      -输出:无
  • 影响寄存器:AX, SP, BP, SI, DI

显示从指定显示页面上的当前光标位置开始,但光标本身不移动。

在文本模式下,超出屏幕右侧的字符换行到下一行;在图形模式下,它们不会。

此服务将控制字符显示为可打印的字符,而不是它们的光标控制等价物。 例如,如果AL为13,则将显示音符,而不是回车。

在图形模式下,如果属性(BL)设置了第7位,则显示字符的颜色位与当前字符的颜色位进行异或。您可以使用此功能写入字符然后擦除它们。

该服务与0ah服务的区别在于该服务允许用户指定显示属性字节。

1.11 服务号: 10 在光标处写入字符和属性

Interrupt 10H Service 10 : 在光标处写字符
显示指定字符指定次数。

  • 输入:
    1. AX = 0ah
    2. AL = 字符的ASCII值
    3. BH = 显示页面(仅限文本模式)
    4. CX = 写字次数
  • 输出:无
  • 影响寄存器:AX, SP, BP, SI, DI

显示从指定显示页面上的当前光标位置开始,但光标本身不移动。

服务09h用于图形模式,因为它允许更改颜色。

在文本模式下,超出屏幕右侧的字符换行到下一行;在图形模式下,它们不会。

此服务将控制字符显示为可打印的字符,而不是它们的光标控制等价物。 例如,如果AL为13,则将显示音符,而不是回车。

该服务与服务0ah的区别在于该服务不允许用户指定显示属性字节。该服务将光标处的当前属性用于新字符。

1.12 服务号: 11 设置调色板

为各种显示模式选择调色板。

  • 输入:
    1. AX = 0bh
    2. AL = 字符的ASCII值
    3. BH = 调色板颜色ID(0或1)
    4. BL = 与颜色ID(0-31)一起使用的颜色或调色板值
  • 输出:无
  • 影响寄存器:AX, SP, BP, SI, DI

如果BH=0(调色板颜色 ID)为0,则:

  • 为320x200图形模式设置背景颜色
  • 设置文本模式的边框颜色
  • 为640x200图形模式设置前景色

BL包含要使用的颜色。EGA将设置

  • 640x200图形模式的背景颜色

为文本模式设置边框颜色时,颜色16-31将选择高强度背景集。

如果 BH = 1(调色板颜色 ID)为 1,则

  • 选择320x200图形模式的调色板

BL中的值决定使用哪个调色板组合,定义如下

调色板0(BL = 0)

索引值 颜色
0 当前背景颜色
1 绿色
2 红色
3 棕色

调色板1(BL = 1)

索引值 颜色
0 当前背景颜色
1 青色
2 品红
3 白色

1.13 服务号: 12 写入像素

在指定的屏幕坐标处写入指定颜色的像素点。

  • 输入:
    1. AH = 0ch
    2. AL = 像素颜色
    3. CX = 像素的水平位置
    4. DX = 像素的垂直位置
    5. BH = 显示页码(超过1页的图形模式)
  • 输出:无
  • 影响寄存器:AX, SP, BP, SI, DI

合法值

模式 CX (水平) DX (垂直) AL (像素颜色) BH (页码)
04h 0-319 0-199 0-3
05h 0-319 0-199 0-3
06h 0-639 0-199 0-1
0Dh 0-319 0-199 0-15 0-7
0Eh 0-639 0-199 0-15 0-3
0Fh 0-639 0-349 0-1 0-1
10h 0-639 0-349 0-15 0-1

如果设置了第7位指定像素颜色(AL),则像素的颜色位与指定坐标处的当前像素的颜色位进行异或。您可以使用此功能写入字符然后擦除它们。

对于模式0dh到10h,需要在BH中提供页码。

1.14 服务号: 13 读取像素

报告指定屏幕坐标处的像素颜色。

  • 输入:
    1. AH = 0dh
    2. CX = 像素的水平位置
    3. DX = 像素的垂直位置
    4. BH = 显示页码(超过1页的图形模式)
  • 输出:
    1. AL = 像素颜色
  • 影响寄存器:AX, SP, BP, SI, DI

对于模式0d10h,需要在中提供页码。

1.15 服务号: 14 以电传打字(TTY)模式写入字符

在当前光标位置写入字符并前进光标。

  • 输入:
    1. AH = 0eh
    2. AL = 要写的字符
    3. BL = 前景色(仅限图形模式)
    4. BH = 显示页码(仅限文本模式)
  • 输出:无

在文本模式下,显示的字符保留前一个占据屏幕位置的字符的显示属性。在图形模式下,每次调用此服务时都需要指定前景色(以BL为单位)。

在文本模式下,可以写入字符以显示活动页面以外的页面。

该服务响应字符 07h(响铃)、08h(退格)、0ah(换行)和 odh(回车)的ASCII含义。所有其他ASCII值都会显示一个字符,光标移动一个位置。

如果光标位于行尾,则换行到下一行。如果光标位于屏幕最后一行的末尾,则屏幕向上滚动,整个新行的显示属性取自前一行的最后一个字符。

1.16 服务号: 15 获取当前视频模式

报告当前视频模式、该视频模式中每行的字符数以及当前显示页面。

  • 输入:
    1. AH = 0fh
  • 输出:
    1. AL = 视频模式
    2. AH = 每行的字符列数
    3. BH = 活动显示页码
  • 影响寄存器:AX, SP, BP, SI, DI

1.17 服务号: 16 设置调色板寄存器

在PCjr和EGA上设置调色板和过扫描(边界)寄存器。

  • 输入:
    1. AH = 10h
    2. AL = 子服务
子服务 描述
0 设置调色板寄存器
BL = 调色板寄存器
BH = 要设置的值
1 设置过扫描(边框)颜色寄存器
BH = 要设置的值
2 设置调色板寄存器和边界寄存器
ES:DX = 指向颜色列表的指针
3 切换加强/闪烁位
BL = 0(启用强化)
BH = 1 (启用闪烁)
  • 影响寄存器:AX, SP, BP, SI, DI

EGA 和 PCjr 显示器上有 16 个调色板寄存器和 1 个过扫描(边界)寄存器。 该服务使用户可以控制这些寄存器。 下面解释这四个子服务

子服务 0 (设置调色板寄存器)

16 个调色板寄存器中的每一个都接受 64 个值中的 1 个。 BH中的值格式如下

  • Bit 7 - 预留
  • Bit 6 - 预留
  • Bit 5 - secondary red
  • Bit 4 - secondary green
  • Bit 3 - secondary blue
  • Bit 2 - red
  • Bit 1 - green
  • Bit 0 - blue

二次色的强度为 1/3,而普通颜色的强度为 2/3。例如,BH = 02h 将产生绿色,BH = 10h将产生暗绿色,BH = 12h将产生亮绿色。

调色板寄存器的默认值与彩色图形适配器 (CGA) 相同,定义如下:

调色板寄存器 颜色值 颜色
00h 00h Black
01h 01h Blue
02h 02h Green
03h 03h Cyan
04h 04h Red
05h 05h Magenta
06h 14h Brown
07h 07h White
08h 38h Dark Gray
09h 39h Light Blue
0ah 3ah Light Green
0bh 3bh Light Cyan
0ch 3ch Light Red
0dh 3dh Light Magenta
0eh 3eh Yellow
0fh 3fh Bright White

子服务 1(设置过扫描(边界)寄存器)

此子服务设置边框颜色。增强型彩色显示器仅支持200行模式下的过扫描

子服务 2(设置所有调色板寄存器和过扫描寄存器)

ES:DX指向一个17字节的颜色列表,其中前16个字节由16个调色板寄存器的新值组成,最后一个字节是新的过扫描寄存器值。

子服务 3(切换增强/闪烁位)

通常属性字节的第7位用于指示前景闪烁。使用此子服务,位7可以指示前景闪烁(BL = 1)或背景增强(BL = 0)。

1.18 服务号: 17 字符生成器

在文本和图形模式下将增强图形适配器(EGA)上的字体更改为预定义字体或用户定义字体。

  • 输入:
    1. AH = 11h
    2. AL = 子服务
Subservice Description
00h 加载用户定义的字体(文本模式)
ES:BP = 指向字体表的指针
CX = 字符数
DX = 表格字符偏移
BL = 要加载的字体块 (0-3)
BH = 每个字符的字节数
01h 加载 8 x 14 字符字体(单色集)
BL = 要加载的字体块 (0-3)
02h 加载 8 x 8 双点字符字体(文本模式)
BL = 要加载的字体块 (0-3)
03h 设置块说明符(文本模式)
BL = 位3、2:当属性字节的位 3 为 1 时选择要使用的块 (0-3)
位 1、0:当属性字节的位 3 为 0 时选择要使用的块 (0-3)
10h 加载用户定义的文本字体(文本模式)
BL = 位 3、2:当属性字节的位 3 为 1 时选择要使用的块 (0-3)
位 1、0:当属性字节的位 3 为 0 时选择要使用的块 (0-3)
11h 加载 8 x 14 字符字体(单色集)(文本模式)
BL = 要加载的字体块 (0-3)
12h 加载 8 x 8 双点字符字体(文本模式)
BL = 要加载的字体块 (0-3)
20h 加载用户定义的 8 x 8 字符字体(图形模式)
ES:BP = 指向图形字符 128-255 的用户图形表的指针。 INT 1fh 设置为此指针
21h 加载用户自定义字符字体(图形模式)
ES:BP = 指向图形字符 0-128 的用户图形表的指针
CX = 每个字符的字节数
BL = 行数
    00h : DL 包含行数
    01h : 14行
    02h : 25行
    03h : 43行
22h 加载 ROM 8 x 14 字符字体(图形模式)
BL = 行数(与子服务 21h 格式相同)
23h 加载 ROM 8 x 8 双点字符字体(图形模式)
BL = 行数(与子服务 21h 格式相同)
30h 返回字体信息
BH = 返回的指针类型
    00h : 当前 INT 1fh 指针
    01h :当前 INT 44h 指针
    02h : ROM 8 x 14字体指针
    03h : ROM 8 x 8双点字体指针
    04h : ROM 8 x 8双点字体指针(顶部)
    05h : ROM 文本交替9 x 14指针
  • 输出:
    1. ES:BP = 指向 BH 中指定的表的指针
    2. CX = 每个字符扫描行
    3. DL = 行

子服务 00h、01h 和 02h 执行模式设置,完全改变视频状态但不清除显示缓冲区(屏幕未清除)。

子服务 10h、11h 和 12h 分别与 00h、01h 和 02h 相同,但有以下区别:

  • 子服务 10h、11h 和 12h依赖页面0作为活动页面
  • 重新计算每个字符的字节数
  • 重新计算行数
  • 重新计算再生缓冲区的长度
  • 五个光标控制 (CRTC) 寄存器被重新编程

子服务 10h-23h 只能在模式设置后立即调用。

子服务 03h(设置块说明符)允许您同时显示两个字符集,每个字符集来自一个 256 个字符的块,因此允许 512 个字符集。当使用512字符集时,建议通过执行服务10h, 子服务00h(AX=1000h) 并设置BX =0712h 来设置8个一致颜色的调色板。

64k EGA 内存的每个增量都允许使用另一个字体块。默认值64k允许一个字体块,而256k的EGA内存最多允许四个字体块。每个块包含256个字符的定义。

定义字符时,在图形模式中设置时,必须提供完整的 256 个字符集(与文本模式中的字符集定义进行比较,其中可以加载任意数量的字符 - 每个块最多256个)。

子服务21h将加载256个字符定义。视频模式4、5 和6仅使用前128个字符。所有其他模式使用全部256个字符。

1.19 服务号: 18 备用选择

返回有关增强显示适配器(EGA)的信息,并允许选择替代EGA打印屏幕例程。

  • 输入:
    1. AH = 12h
    2. AL = 子服务

      10h : 返回 EGA 信息

      20h : 选择替代 EGA 打印屏幕例程
  • 输出:
    1. BH = 显示模式生效

      00h : 颜色模式(3Dxh 地址范围)

      01h : 单色模式(3Bxh 地址范围)
    2. BL = EGA内存

      00h : 64k

      01h : 128k

      02h : 192k

      03h : 256k
    3. CH = 适配器位
    4. CL = 开关设置

CL(开关设置)中返回的值代表EGA上的DIP开关设置。适配器位 (CH) 定义如下

7 6 5 4 3 2 1 0
x x x x . . . .     未使用
. . . . x x . .     预留
. . . . . . x .     FEAT1 (pin 17)
. . . . . . . x     FEAT0 (pin 19)

要在行数更改时打印屏幕内容,请使用子服务20h(设置替代打印屏幕)安装一个打印屏幕例程,该例程将在行更改时正常工作。

1.20 服务号: 19 写字符串

将具有指定属性的字符串写入任何显示页面。

  • 输入:
    1. AH = 13h
    2. AL = Subservice (0-3)
    3. BH = Display page number
    4. BL = Attribute (subservice 0 and 1)
    5. CX = Length of string
    6. DH = Row position where string is to be written
    7. DL = Column position where string is to be written
    8. ES:SP = Pointer to string to write
  • 输出:无
  • 影响寄存器:AX, SP, BP, SI, DI

此服务仅适用于日期为86年1月19日及之后的XT、AT、EGA和PC Convertibles。

该服务有四个子服务,如下所示:

  • AL = 00h : 为所有字符分配BL中的属性; 不更新光标
  • AL = 01h : 为所有字符分配BL中的属性; 更新光标
  • AL = 02h : 在字符串中使用属性; 不更新光标
  • AL = 03h : 在字符串中使用属性; 更新光标

在子服务0和1中,字符串中的所有字符都以相同的属性写入屏幕 - BL中指定的属性。

在子服务 2 和 3 中,每个字符的属性字节都可以在字符串本身中找到。 字符串本身由一个字符后跟其属性,另一个字符后跟其属性,依此类推。 字符串按原样直接复制到视频缓冲区。

在子服务0和2中,写入字符串后不会更新光标位置。

在子服务1和3中,光标移动到字符串中最后一个字符之后的第一个位置。

与服务0eh一样,服务13h对ASCII 07h(响铃)、08h(退格)、10h(换行)和 0dh(回车)做出适当的响应。打印所有其他字符。

1.21 服务号: 20 LCD处理器

  • 输入:
    1. AH = 14h
    2. AL = 子服务
子服务 描述
00h 加载用户指定的字体
ES:BP = 指向字体表的指针
CX = 要存储的字符数 (1 - 255)
DX = 字符偏移到 RAM 字体缓冲区
BL = 要加载的字体块
    0 : 主字体(块 0)
    1 : 替代字体(块 1)
BH = 每个字符的字节数 (1 -255)
01h 加载系统ROM默认字体块
BL = 要加载的字体块
    0 : 主字体(块 0)
    1 : 替代字体(块 1)
02h LCD高亮度属性映射
BL = 映射方案
    0 : 忽略高强度属性
    1 : 将高强度映射到反向视频
    2 : 将高强度映射到下划线
    3 : 映射高强度以选择替代字体
  • 输出:无

1.22 服务号: 21 返回PC convertible物理显示特性

返回备用显示适配器类型和描述当前显示特性的表。此服务仅适用于 PC convertible。

  • 输入:
    1. AH = 15h
  • 输出:
    1. AX = 备用显示适配器类型

      00h : 没有备用适配器

      5140h : LCD

      5153h : CGA型显示器

      5151h : 单色型显示器
    2. ES:DI = 指向7字当前显示适配器表的指针

显示适配器表的格式如下:

  • Word 1 : 显示模式编号
  • Word 2 : Vertical PELs per meter
  • Word 3 : Horizontal PELs per meter
  • Word 4 : 垂直 PEL 总数
  • Word 5 : 水平 PEL 总数
  • Word 6 : 以微米为单位的 PEL 高度(垂直方向)
  • Word 7 : 以微米为单位的 PEL 宽度(水平方向)

PC Convertible 显示适配器表

Word 单色 CGA LCD (CGA) LCD (单色)
1 5151h 5153h 5140h 5140h
2 0 0498h 08e1h 0
3 0 0a15h 0987h 0
4 0 00c8h 00c8h 0
5 0 0280h 0280h 0
6 0 0352h 0172h 0
7 0 0184h 0172h 0

请注意,PC Convertible 技术参考手册错误地记录了用作 CGA 的 LCD 的词6和7。上面列出了正确的值。

2. 中断服务: 11H 阅读设备清单

返回系统上已安装设备的列表。

  • 输入:无
  • 输出:
    1. AX = 设备代码

设备代码 (AX)

F E D C B A 9 8  7 6 5 4 3 2 1 0
x x . . . . . .  . . . . . . . .  安装的打印机数量
. . x . . . . .  . . . . . . . .  已安装内部调制解调器
. . . x . . . .  . . . . . . . .  游戏适配器安装了吗? (在 PCJr 上始终为 1)
. . . . x x x .  . . . . . . . .  RS-232 端口数量
. . . . . . . x  . . . . . . . .  预留
. . . . . . . .  x x . . . . . .  磁盘数量 - 1(即 0=1 个磁盘)
. . . . . . . .  . . x x . . . .  初始视频模式(见下文)
. . . . . . . .  . . . . x . . .  预留
. . . . . . . .  . . . . . x . .  预留
. . . . . . . .  . . . . . . x .  安装了数学协处理器?
. . . . . . . .  . . . . . . . x  1=存在软盘; 0=不存在磁盘

AX 中返回的值与存储在内存位置 0:0410h 中的值相同,该值在上电测试期间被初始化。

对于 IBM PC、XT 和 PCjr,第2位和第3位用于列出系统板上安装的RAM量,增量为16K。例如,00表示16K,而11表示64K。

位0仅表示系统是否有一个或多个软盘驱动器。 请参阅第6位和第7位以了解实际存在的软盘数量。要确定安装的硬盘数量,请使用 INT 服务8。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容